diff --git a/appendices/examples.xml b/appendices/examples.xml
new file mode 100644
index 000000000..5cd8d5f55
--- /dev/null
+++ b/appendices/examples.xml
@@ -0,0 +1,39 @@
+
+
+
+
+ Über die Beispiele im Handbuch
+
+ Es ist zu beachten, dass viele Beispiele in der PHP-Dokumentation der Klarheit und Kürze halber
+ auf die Behandlung von Fehlern und Ausnahmen verzichten.
+
+
+ Das bedeutet nicht, dass die Fehlerbehandlung in Produktivcode weggelassen werden sollte,
+ da dies dazu führen kann, dass TypeErrors ausgelöst werden,
+ Fehlschlagwerte umgewandelt werden, etwa &false; in eine leere Zeichenkette,
+ oder Annahmen verletzt werden, was schwer auffindbare Fehler verursachen kann.
+ Einige Erweiterungen stellen vollständige Beispiele bereit, in denen die Fehlerbehandlung enthalten ist,
+ um die korrekte Verwendung der verschiedenen von der Erweiterung bereitgestellten Funktionen und Methoden
+ zu demonstrieren.
+
+
+
diff --git a/chmonly/integration.xml b/chmonly/integration.xml
new file mode 100644
index 000000000..1676b3c38
--- /dev/null
+++ b/chmonly/integration.xml
@@ -0,0 +1,126 @@
+
+
+
+
+ Integration des PHP-Handbuchs
+
+
+
+
+ Die hier bereitgestellten Informationen richten sich hauptsächlich an IDE-Autoren oder
+ fortgeschrittene Benutzer, die diese CHM-Datei in ihre
+ bevorzugten IDEs oder andere Komponenten ihrer Produktivumgebung integrieren möchten.
+
+
+
+
+ Es gibt mehrere Editoren mit Unterstützung für die CHM-Integration,
+ aber möglicherweise müssen einige Dinge über den Inhalt der CHM-Datei bekannt sein,
+ um das Handbuch erfolgreich in die eigene Umgebung zu integrieren.
+
+
+ Die CHM-Datei wird mithilfe von XSL-Stylesheets aus XML-Quellen erstellt. Dies ist
+ derzeit innerhalb der PHP-Handbuch-Familie einzigartig, da alle anderen Versionen
+ mithilfe von DSSSL-Stylesheets erzeugt werden. Das bedeutet auch, dass
+ unbeabsichtigte Unterschiede in der Darstellung auftreten können. Auf die Ausgabe der XSLT
+ wird ein spezielles Konvertierungsskript angewendet, das mehrere praktische
+ Funktionen hinzufügt und das Handbuch zusammen mit den Einstellungsdateien
+ und Skin-Beispielen verpackt.
+
+
+ Wer noch nie mit CHM-Dateien gearbeitet hat, kann sich diese als komprimierte
+ Dateien mit vom Betriebssystem unterstütztem Zugriff auf die enthaltenen Dateien sowie zusätzlicher Such-
+ und Indexunterstützung vorstellen. CHM-Dateien können jedoch nur mit dem HTML-Help-
+ Viewer angezeigt werden; auf die enthaltenen Dateien kann direkt über ein spezielles URL-
+ Präfix, den CHM-Dateinamen und die angeforderte enthaltene Datei zugegriffen werden. Da der gesamte
+ Hilfeinhalt in HTML-Dateien gespeichert ist, können Seiten der CHM-Datei
+ im Internet Explorer angezeigt werden.
+
+
+ Angenommen, die Datei php_manual_en.chm wurde unter
+ c:\phpmanual abgelegt, dann kann auf die Indexdatei des Handbuchs (die
+ beim ersten Mal angezeigt wird) über die folgende URL zugegriffen werden:
+ mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html.
+ Hierbei ist mk:@MSITStore: das spezielle "Protokoll",
+ C:\phpmanual\php_manual_en.chm ist die CHM-Datei mit ihrem
+ vollständigen Pfad. Der Teil /_index.html ist der Pfad zur
+ Indexdatei innerhalb der CHM, und :: ist genau das, was zwischen
+ dem CHM-Pfad und diesem Dateipfad eingefügt werden muss.
+
+
+
+
+ Alle Dateien befinden sich im Stammverzeichnis der CHM, anders als bei den vorherigen
+ CHM-Versionen, die ein Sprachverzeichnis enthielten. Bilder, Stylesheets
+ und andere ergänzende Dateien haben Namen, die mit einem Unterstrich beginnen
+ (wie der oben gezeigte Hauptindex), um Namenskollisionen zu vermeiden.
+
+
+
+
+ Die Namen der erzeugten Dateien folgen denselben Regeln wie das Online-
+ Handbuch, mit der Ausnahme, dass die Erweiterung .html und
+ nicht .php lautet. Am wichtigsten ist, dass die Dateien der Funktions-
+ dokumentation function.FUNCNAME.html heißen,
+ wobei FUNCNAME der Funktionsname ist, mit allen
+ Unterstrichen, die in Bindestriche umgewandelt wurden. Einige Beispiele sind
+ function.echo.html,
+ function.mysql-close.html,
+ function.imagecopy.html.
+
+
+ Mithilfe all dieser Informationen kann eine Handbuchseite für eine von einem Benutzer
+ angeforderte Funktion angezeigt werden. In der Distribution ist ein einfaches Beispiel enthalten,
+ das php_quickref.hta heißt. Dabei handelt es sich um eine
+ HTML-Anwendung, die den
+ einfachen Vorgang der Anzeige einer Handbuchseite für eine Funktion demonstriert. Die
+ darin definierte Funktion quickRef() erledigt diese Aufgabe.
+
+
+ Um das Handbuch in eine IDE ohne direkte
+ Unterstützung für das PHP-Handbuch (genauer gesagt für die Umwandlung von Unterstrichen in Bindestriche) zu integrieren,
+ kann die mitgelieferte Datei _function.html verwendet werden, um auf
+ eine Funktionsseite zuzugreifen. Diese Datei ist einfach eine Weiterleitung und kann über
+ die URL parametrisiert werden, etwa als _function.html#mysql_close. Diese Seite
+ leitet automatisch zur Seite der Funktion mysql_close
+ (function.mysql-close.html) weiter. Es kann der vollständige
+ Pfad dieser Datei angegeben werden, falls die IDE kontextsensitive
+ Hilfe unterstützt, und die von der IDE angegebene Zeichenkette als Parameter übergeben werden. Ein Beispiel
+ hierfür ist die Integration in UltraEdit 9 (siehe die Website dieser Edition).
+
+
+ Der Index des Handbuchs (zugänglich über die Registerkarte Index im Navigations-
+ bereich) kann ebenfalls zu Integrationszwecken verwendet werden. Alle HTML-Seiten
+ sind im Index mit ihren Titeln als Indexbegriffe enthalten (einschließlich der
+ Funktionsbeschreibungsseiten).
+
+
+ Wer als Entwickler von Desktop-Anwendungen die CHM-Datei eng
+ in das eigene Programm integrieren möchte (etwa um den Inhaltsverzeichnisbaum
+ in der Hilfebox der IDE anzuzeigen), findet weitere Informationen unter
+ &url.chm.helpware; sowie
+ Links zu weiteren nützlichen Ressourcen. Die offizielle Website für HTML Help befindet sich
+ unter &url.chm;.
+
+
+
+
diff --git a/reference/cmark/commonmark.cql.xml b/reference/cmark/commonmark.cql.xml
new file mode 100644
index 000000000..90ab07f28
--- /dev/null
+++ b/reference/cmark/commonmark.cql.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+ Die Klasse CommonMark\CQL
+ CommonMark\CQL
+
+
+
+
+
+ &reftitle.intro;
+
+ Die CommonMark Query Language ist eine DSL zur Beschreibung der Navigation durch einen CommonMark-Knotenbaum, implementiert als Parser und Compiler für einen kleinen Satz von Anweisungen sowie eine virtuelle Maschine zur Ausführung dieser Anweisungen.
+
+
+ Pfade:
+
+ In ihrer einfachsten Form kombiniert eine CQL-Abfrage die folgenden Pfade und /, um die Navigation durch einen Baum zu beschreiben:
+
+ firstChild
+ lastChild
+ previous
+ next
+ parent
+
+ Beispielsweise würde /firstChild/lastChild zum letzten Kindknoten des ersten Kindknotens navigieren.
+
+
+
+ Schleifen
+
+ CQL kann angewiesen werden, eine Schleife auszuführen, beispielsweise über die Kinder eines bestimmten Knotens oder seine Geschwister, indem der Pfad children oder siblings verwendet wird. Beispielsweise navigiert /firstChild/children zu allen Kindern des ersten Kindknotens.
+
+
+
+ Teilabfragen
+
+ CQL kann mithilfe einer Teilabfrage wie [/firstChild] angewiesen werden, wie navigiert werden soll. Beispielsweise navigiert /firstChild/children[/firstChild] zum ersten Kindknoten aller Kinder des ersten Kindknotens.
+
+
+
+ Schleifeneinschränkungen
+
+ Während einer Schleife kann CQL angewiesen werden, den navigierten Pfad auf Knoten eines bestimmten Typs zu beschränken. Beispielsweise navigiert /children(BlockQuote) zu den Kindern eines Knotens, dessen Typ BlockQuote ist. Die folgenden Typen werden (ohne Beachtung der Groß-/Kleinschreibung) erkannt:
+
+ BlockQuote
+ List
+ Item
+ CodeBlock
+ HtmlBlock
+ CustomBlock
+ Paragraph
+ Heading
+ ThematicBreak
+ Text
+ SoftBreak
+ LineBreak
+ Code
+ HtmlInline
+ CustomInline
+ Emphasis
+ Strong
+ Link
+ Image
+
+ Typen können als Vereinigung verwendet werden, beispielsweise navigiert /children(BlockQuote|List) zu den Kindern eines Knotens, dessen Typ BlockQuote oder List ist. Typen oder Vereinigungen von Typen können auch negiert werden. Beispielsweise navigiert /children(~BlockQuote) zu den Kindern eines Knotens, dessen Typ nicht BlockQuote ist, und /children(~BlockQuote|Paragraph) navigiert zu den Kindern eines Knotens, dessen Typ nicht BlockQuote oder Paragraph ist
+
+
+
+ Pfadeinschränkungen
+
+ CQL kann angewiesen werden, eine Schleife zu erstellen, um zu einem Knoten eines bestimmten Typs an einem bestimmten Pfad zu navigieren. Beispielsweise navigiert /firstChild(BlockQuote) zum ersten Kindknoten, dessen Typ BlockQuote ist. Beachten Sie, dass auf diese Art von Pfad, ebenso wie bei anderen Schleifen für children und siblings, nur eine Teilabfrage folgen kann.
+
+
+
+ Hinweise zur Implementierung
+
+ Obwohl CQL als Teil der PHP-Erweiterung CommonMark implementiert wurde, steht es unabhängig von PHP und verwendet weder die virtuelle Maschine noch die interne Repräsentation von Werten von PHP.
+
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ CommonMark\CQL
+
+
+
+
+ CommonMark\CQL
+
+
+
+
+ &Constructor;
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+ &reference.cmark.commonmark.cql.construct;
+ &reference.cmark.commonmark.cql.invoke;
+
+
+
diff --git a/reference/fdf/functions/fdf-get-attachment.xml b/reference/fdf/functions/fdf-get-attachment.xml
new file mode 100644
index 000000000..9250471d5
--- /dev/null
+++ b/reference/fdf/functions/fdf-get-attachment.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+ fdf_get_attachment
+ Extrahiert eine in der FDF eingebettete hochgeladene Datei
+
+
+
+ &reftitle.description;
+
+ arrayfdf_get_attachment
+ resourcefdf_document
+ stringfieldname
+ stringsavepath
+
+
+ Extrahiert eine über das Feld "file selection"
+ fieldname hochgeladene Datei und speichert sie unter
+ savepath.
+
+
+
+
+ &reftitle.parameters;
+
+
+ fdf_document
+
+
+ Das FDF-Dokument-Handle, das von fdf_create,
+ fdf_open oder fdf_open_string zurückgegeben wird.
+
+
+
+
+ fieldname
+
+
+
+
+
+
+ savepath
+
+
+ Kann der Name einer einfachen Datei oder eines vorhandenen Verzeichnisses sein, in dem die
+ Datei unter ihrem ursprünglichen Namen erstellt werden soll. Jede vorhandene Datei mit
+ demselben Namen wird überschrieben.
+
+
+
+ Es scheint keine andere Möglichkeit zu geben, den ursprünglichen Dateinamen herauszufinden, als
+ die Datei unter Verwendung eines Verzeichnisses als
+ savepath zu speichern und den Basisnamen zu prüfen, unter dem sie
+ gespeichert wurde.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Das zurückgegebene Array enthält die folgenden Felder:
+
+
+ path - Pfad, unter dem die Datei gespeichert wurde
+
+
+ size - Größe der gespeicherten Datei in Byte
+
+
+ type - MIME-Typ, sofern in der FDF angegeben
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Speichern einer hochgeladenen Datei
+
+
+]]>
+
+
+
+
+
+
diff --git a/reference/fpm/status.xml b/reference/fpm/status.xml
new file mode 100644
index 000000000..2d8048fb1
--- /dev/null
+++ b/reference/fpm/status.xml
@@ -0,0 +1,320 @@
+
+
+
+
+ Statusseite
+
+
+ Diese Seite liefert Informationen zur Einrichtung und zum Inhalt der FPM-Statusseite. Siehe auch
+ fpm_get_status.
+
+
+
+ Konfiguration
+
+
+ Die FPM-Statusseite kann aktiviert werden, indem der Konfigurationsparameter
+ pm.status_path in der FPM-Pool-Konfiguration
+ gesetzt wird.
+
+
+
+
+ Aus Sicherheitsgründen sollte die FPM-Statusseite ausschließlich auf interne Anfragen oder bekannte Client-IPs
+ beschränkt werden, da die Seite Anfrage-URLs und Informationen über verfügbare Ressourcen preisgibt.
+
+
+
+
+ Je nach Webserver-Konfiguration kann es erforderlich sein, den Webserver so zu konfigurieren, dass er
+ Anfragen direkt an diesen Pfad zulässt und dabei alle PHP-Skripte umgeht. Ein Beispiel für eine Konfiguration
+ für Apache mit FPM, das auf UDS lauscht und bei dem pm.status_path auf
+ /fpm-status gesetzt ist, würde so aussehen:
+
+
+
+
+
+ Require local
+ ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/"
+
+]]>
+
+
+
+
+ Nach dem Neuladen oder Neustarten von FPM und dem Webserver ist die Statusseite vom
+ Browser aus erreichbar (sofern die Anfrage von einer zulässigen IP-Adresse stammt, falls die IP-Beschränkung
+ konfiguriert wurde).
+
+
+
+
+ Abfrageparameter
+
+
+ Das Format der Ausgabe der Statusseite kann durch Angabe eines der folgenden Abfrageparameter
+ geändert werden:
+
+
+
+ html
+ json
+ openmetrics
+ xml
+
+
+
+ Mithilfe des Abfrageparameters full können zudem zusätzliche Informationen zurückgegeben werden.
+
+
+
+ Beispiel-URLs für die Statusseite:
+
+
+
+
+ https://localhost/fpm-status
+ - Kurze Ausgabe im Standard-Textformat
+
+
+ https://localhost/fpm-status?full
+ - Vollständige Ausgabe im Standard-Textformat
+
+
+ https://localhost/fpm-status?json
+ - Kurze Ausgabe im JSON-Format
+
+
+ https://localhost/fpm-status?html&full
+ - Vollständige Ausgabe im HTML-Format
+
+
+
+
+
+ Angezeigte Informationen
+
+
+ Datums-/Zeitwerte verwenden in der JSON- und XML-Ausgabe das Unix-Timestamp-Format, andernfalls verwenden sie
+ das Format, das zu folgendem Beispieldatum führt:
+ "03/Jun/2021:07:21:46 +0100".
+
+
+
+ Grundlegende Informationen - werden immer auf der Statusseite angezeigt
+
+
+
+ Parameter
+ Beschreibung
+
+
+
+
+ pool
+ Der Name des FPM-Prozess-Pools.
+
+
+ process manager
+ Der Typ des Prozessmanagers - static, dynamic oder ondemand.
+
+
+ start time
+ Datum/Uhrzeit, zu dem der Prozess-Pool zuletzt gestartet wurde.
+
+
+ start since
+ Die Zeit in Sekunden seit dem letzten Start des Prozess-Pools.
+
+
+ accepted conn
+ Die Gesamtzahl der angenommenen Verbindungen.
+
+
+ listen queue
+ Die Anzahl der Anfragen (Backlog), die derzeit auf einen freien Prozess warten.
+
+
+ max listen queue
+ Die maximale Anzahl an Anfragen, die jemals gleichzeitig in der Listen-Queue beobachtet wurde.
+
+
+ listen queue len
+ Die maximal zulässige Größe der Listen-Queue.
+
+
+ idle processes
+ Die Anzahl der Prozesse, die derzeit untätig sind (auf Anfragen warten).
+
+
+ active processes
+ Die Anzahl der Prozesse, die derzeit Anfragen verarbeiten.
+
+
+ total processes
+ Die aktuelle Gesamtzahl der Prozesse.
+
+
+ max active processes
+ Die maximale Anzahl gleichzeitig aktiver Prozesse.
+
+
+ max children reached
+
+ Wurde die maximale Anzahl an Prozessen jemals erreicht? Falls ja, ist der angezeigte Wert größer als oder gleich
+ 1, andernfalls ist der Wert 0.
+
+
+
+ slow requests
+
+ Die Gesamtzahl der Anfragen, die das konfigurierte
+ request_slowlog_timeout erreicht haben.
+
+
+
+ memory peak
+
+ Der Spitzenwert der Speichernutzung seit dem Start von FPM.
+
+
+
+
+
+
+
+ Informationen pro Prozess - werden nur im Ausgabemodus full angezeigt
+
+
+
+ Parameter
+ Beschreibung
+
+
+
+
+ pid
+ Die System-PID des Prozesses.
+
+
+ state
+ Der Zustand des Prozesses - Idle, Running, ...
+
+
+ start time
+ Datum/Uhrzeit, zu dem der Prozess gestartet wurde.
+
+
+ start since
+ Die Anzahl der Sekunden seit dem Start des Prozesses.
+
+
+ requests
+ Die Gesamtzahl der bedienten Anfragen.
+
+
+ request duration
+ Die Gesamtzeit in Mikrosekunden, die für die Bearbeitung der letzten Anfrage aufgewendet wurde.
+
+
+ request method
+ Die HTTP-Methode der zuletzt bedienten Anfrage.
+
+
+ request uri
+
+ Die URI der zuletzt bedienten Anfrage (nach der Verarbeitung durch den Webserver kann sie immer
+ /index.php sein, wenn ein Front-Controller-Pattern-Redirect verwendet wird).
+
+
+
+ content length
+ Die Länge des Anfragerumpfs der letzten Anfrage in Byte.
+
+
+ user
+ Der HTTP-Benutzer (PHP_AUTH_USER) der letzten Anfrage.
+
+
+ script
+
+ Der vollständige Pfad des von der letzten Anfrage ausgeführten Skripts. Dies ist
+ '-', falls nicht zutreffend (z. B. bei Anfragen an die Statusseite).
+
+
+
+ last request cpu
+
+ Die CPU-Auslastung (%cpu) der letzten Anfrage. Dieser Wert ist 0, wenn der Prozess nicht untätig (Idle) ist, da die
+ Berechnung erfolgt, sobald die Verarbeitung der Anfrage abgeschlossen ist.
+ Der Wert kann 100 % überschreiten, da die Metrik angibt, welcher Prozentsatz der gesamten CPU-Zeit in der letzten Anfrage verwendet wurde -
+ sie berücksichtigt Prozesse auf allen Kernen, während sich die 100 % nur auf einen einzelnen Kern beziehen.
+
+
+
+ last request memory
+
+ Die maximale Menge an Speicher, die von der letzten Anfrage verbraucht wurde. Dieser Wert ist 0, wenn der Prozess
+ nicht untätig (Idle) ist, da die Berechnung erfolgt, sobald die Verarbeitung der Anfrage abgeschlossen ist.
+
+
+
+
+
+
+
+
+ Alle Werte sind spezifisch für den Pool und werden beim Neustart von FPM zurückgesetzt.
+
+
+
+
+
+ Die Ausgabe im OpenMetrics-Format verwendet andere Parametertypen, um besser zum OpenMetrics-Format zu passen.
+ Die Parameter und die Beschreibungen ihrer Werte sind in der Ausgabe im OpenMetrics-Format enthalten.
+
+
+
+
+
+ &reftitle.changelog;
+
+
+
+
+ &Version;
+ &Description;
+
+
+
+
+ 8.1.0
+ Das Format openmetrics wurde hinzugefügt.
+
+
+
+
+
+
+
diff --git a/reference/ibm_db2/functions/db2-fetch-row.xml b/reference/ibm_db2/functions/db2-fetch-row.xml
new file mode 100644
index 000000000..765b5bfab
--- /dev/null
+++ b/reference/ibm_db2/functions/db2-fetch-row.xml
@@ -0,0 +1,182 @@
+
+
+
+
+
+ db2_fetch_row
+
+ Setzt den Zeiger der Ergebnismenge auf die nächste oder die angeforderte Zeile
+
+
+
+ &reftitle.description;
+
+ booldb2_fetch_row
+ resourcestmt
+ introw_number-1
+
+
+
+
+ db2_fetch_row wird verwendet, um über eine Ergebnismenge zu iterieren oder
+ um auf eine bestimmte Zeile in einer Ergebnismenge zu zeigen, falls ein scrollbarer
+ Cursor angefordert wurde.
+
+
+ Um einzelne Felder aus der Ergebnismenge abzurufen, ist die Funktion
+ db2_result aufzurufen.
+
+
+ Anstatt db2_fetch_row und
+ db2_result aufzurufen, rufen die meisten Anwendungen eine der Funktionen
+ db2_fetch_assoc, db2_fetch_both
+ oder db2_fetch_array auf, um den Zeiger der Ergebnismenge weiterzubewegen
+ und eine vollständige Zeile als Array zurückzugeben.
+
+
+
+
+ &reftitle.parameters;
+
+
+ stmt
+
+
+ Eine gültige stmt-Ressource.
+
+
+
+
+ row_number
+
+
+ Bei scrollbaren Cursorn kann eine bestimmte Zeilennummer in der
+ Ergebnismenge angefordert werden. Die Zeilennummerierung beginnt bei 1.
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Gibt &true; zurück, wenn die angeforderte Zeile in der Ergebnismenge existiert. Gibt
+ &false; zurück, wenn die angeforderte Zeile nicht in der Ergebnismenge existiert.
+
+
+
+
+ &reftitle.examples;
+
+
+ Über eine Ergebnismenge iterieren
+
+ Das folgende Beispiel zeigt, wie über eine Ergebnismenge
+ mit db2_fetch_row iteriert und Spalten aus der
+ Ergebnismenge mit db2_result abgerufen werden.
+
+
+
+]]>
+
+ &example.outputs;
+
+
+
+
+
+ Unter i5/OS empfohlene Alternativen zu db2_fetch_row/db2_result
+
+ Unter i5/OS wird empfohlen, db2_fetch_both,
+ db2_fetch_array oder db2_fetch_object
+ anstelle von db2_fetch_row/db2_result zu verwenden. Im Allgemeinen
+ haben db2_fetch_row/db2_result mehr Probleme
+ mit verschiedenen Spaltentypen bei der Umwandlung von EBCDIC nach ASCII,
+ einschließlich möglicher Abschneidung in DBCS-Anwendungen.
+ Außerdem kann sich die Leistung von db2_fetch_both,
+ db2_fetch_array und db2_fetch_object als
+ überlegen gegenüber db2_fetch_row/db2_result erweisen.
+
+
+ DB2_SCROLLABLE));
+ while ($row = db2_fetch_both($stmt)){
+ echo " 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 " db2_fetch_array {$row[1]} {$row[5]}";
+ }
+ $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
+ while ($row = db2_fetch_object($stmt)){
+ echo " db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
+ }
+ db2_close($conn);
+?>
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+ db2_fetch_array
+ db2_fetch_assoc
+ db2_fetch_both
+ db2_fetch_object
+ db2_result
+
+
+
+
+
diff --git a/reference/imagick/imagick/forwardfouriertransformimage.xml b/reference/imagick/imagick/forwardfouriertransformimage.xml
new file mode 100644
index 000000000..7abb324c9
--- /dev/null
+++ b/reference/imagick/imagick/forwardfouriertransformimage.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+ Imagick::forwardFourierTransformImage
+ Implementiert die diskrete Fourier-Transformation (DFT)
+
+
+
+ &reftitle.description;
+
+ publicboolImagick::forwardFourierTransformimage
+ boolmagnitude
+
+
+ Implementiert die diskrete Fourier-Transformation (DFT) des Bildes, entweder als Betrags-/Phasen- oder als Real-/Imaginärbildpaar.
+
+
+
+
+
+ &reftitle.parameters;
+
+
+ magnitude
+
+
+ Falls true, wird ein Betrags-/Phasenpaar zurückgegeben, andernfalls ein Real-/Imaginärbildpaar.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &imagick.return.success;
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+
+ Imagick::forwardFourierTransformImage
+
+ setStrokeOpacity(0);
+ $draw->setStrokeColor('rgb(255, 255, 255)');
+ $draw->setFillColor('rgb(255, 255, 255)');
+
+ //Einen Kreis auf der y-Achse zeichnen, dessen Mittelpunkt
+ //bei x, y liegt und der den Ursprung berührt
+ $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();
+}
+
+?>
+]]>
+
+
+
+
+
+
+
+
diff --git a/reference/info/functions/get-defined-constants.xml b/reference/info/functions/get-defined-constants.xml
new file mode 100644
index 000000000..10358a57f
--- /dev/null
+++ b/reference/info/functions/get-defined-constants.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+ get_defined_constants
+ Gibt ein assoziatives Array mit den Namen aller Konstanten und ihren Werten zurück
+
+
+
+ &reftitle.description;
+
+ arrayget_defined_constants
+ boolcategorize&false;
+
+
+ Gibt die Namen und Werte aller derzeit definierten Konstanten zurück.
+ Dazu gehören sowohl die von Erweiterungen erstellten als auch die mit
+ der Funktion define erstellten Konstanten.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ categorize
+
+
+ Bewirkt, dass diese Funktion ein mehrdimensionales
+ Array zurückgibt, mit Kategorien in den Schlüsseln der ersten Dimension und Konstanten
+ sowie ihren Werten in der zweiten Dimension.
+
+
+
+]]>
+
+ &example.outputs.similar;
+
+ 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
+ )
+
+)
+]]>
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Gibt ein Array der Form Konstantenname => Konstantenwert zurück, das optional
+ nach dem Namen der Erweiterung gruppiert ist, die die Konstante registriert.
+
+
+
+
+ &reftitle.examples;
+
+
+ get_defined_constants-Beispiel
+
+
+]]>
+
+ &example.outputs.similar;
+
+ 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
+)
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ defined
+ constant
+ get_loaded_extensions
+ get_defined_functions
+ get_defined_vars
+
+
+
+
+
+
+
diff --git a/reference/ldap/functions/ldap-exop-passwd.xml b/reference/ldap/functions/ldap-exop-passwd.xml
new file mode 100644
index 000000000..79efeff67
--- /dev/null
+++ b/reference/ldap/functions/ldap-exop-passwd.xml
@@ -0,0 +1,176 @@
+
+
+
+
+
+ ldap_exop_passwd
+ Hilfsfunktion für die erweiterte Operation PASSWD
+
+
+
+ &reftitle.description;
+
+ stringboolldap_exop_passwd
+ LDAP\Connectionldap
+ stringuser""
+ #[\SensitiveParameter]stringold_password""
+ #[\SensitiveParameter]stringnew_password""
+ arraycontrols&null;
+
+
+ Führt eine erweiterte Operation PASSWD aus.
+
+
+
+
+ &reftitle.parameters;
+
+
+ ldap
+
+
+ &ldap.parameter.ldap;
+
+
+
+
+ user
+
+
+ Der DN des Benutzers, dessen Passwort geändert werden soll.
+
+
+
+
+ old_password
+
+
+ Das alte Passwort dieses Benutzers. Kann je nach Serverkonfiguration weggelassen werden.
+
+
+
+
+ new_password
+
+
+ Das neue Passwort für diesen Benutzer. Kann weggelassen oder leer gelassen werden, um ein Passwort generieren zu lassen.
+
+
+
+
+ controls
+
+
+ Falls angegeben, wird mit der Anfrage ein Steuerelement für die Passwortrichtlinie gesendet, und dieser Parameter wird
+ mit einem Array von LDAP-Steuerelementen
+ gefüllt, die mit der Anfrage zurückgegeben werden.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Gibt das generierte Passwort zurück, wenn new_password leer ist oder weggelassen wird.
+ Andernfalls wird bei Erfolg &true; und bei einem Fehler &false; zurückgegeben.
+
+
+
+
+ &reftitle.changelog;
+
+
+
+
+
+ &Version;
+ &Description;
+
+
+
+ &ldap.changelog.ldap-object;
+ &ldap.changelog.controls-nullable;
+
+ 7.3.0
+
+ Unterstützung für controls hinzugefügt
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+
+ Erweiterte Operation PASSWD
+
+
+]]>
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ ldap_exop
+ ldap_parse_exop
+
+
+
+
+
+
diff --git a/reference/openssl/functions/openssl-pbkdf2.xml b/reference/openssl/functions/openssl-pbkdf2.xml
new file mode 100644
index 000000000..0233bbd79
--- /dev/null
+++ b/reference/openssl/functions/openssl-pbkdf2.xml
@@ -0,0 +1,137 @@
+
+
+
+
+
+ openssl_pbkdf2
+ Erzeugt eine PKCS5-v2-PBKDF2-Zeichenkette
+
+
+
+ &reftitle.description;
+
+ stringfalseopenssl_pbkdf2
+ #[\SensitiveParameter]stringpassword
+ stringsalt
+ intkey_length
+ intiterations
+ stringdigest_algo"sha1"
+
+
+ openssl_pbkdf2 berechnet PBKDF2 (Password-Based Key Derivation Function 2),
+ eine in PKCS5 v2 definierte Schlüsselableitungsfunktion.
+
+
+
+
+
+ &reftitle.parameters;
+
+
+ password
+
+
+ Das Passwort, aus dem der abgeleitete Schlüssel erzeugt wird.
+
+
+
+
+ salt
+
+
+ PBKDF2 empfiehlt ein kryptografisches Salt von mindestens 128 Bit (16 Byte).
+
+
+
+
+ key_length
+
+
+ Die Länge des gewünschten Ausgabeschlüssels.
+
+
+
+
+ iterations
+
+
+ Die Anzahl der gewünschten Iterationen.
+ NIST
+ empfiehlt mindestens 1.000. Stand 2023 empfiehlt OWASP 600.000 Iterationen für
+ PBKDF2-HMAC-SHA256 und 210.000 für PBKDF2-HMAC-SHA512.
+
+
+
+
+ digest_algo
+
+
+ Optionaler Hash- oder Digest-Algorithmus aus openssl_get_md_methods. Standardmäßig
+ wird SHA-1 verwendet. Es wird empfohlen, ihn auf SHA-256 oder SHA-512 zu setzen.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Gibt eine binäre Rohzeichenkette zurück&return.falseforfailure;.
+
+
+
+
+ &reftitle.examples;
+
+
+ openssl_pbkdf2()-Beispiel
+
+
+]]>
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ hash_pbkdf2
+ openssl_get_md_methods
+
+
+
+
+
+
diff --git a/reference/outcontrol/user-level-output-buffers.xml b/reference/outcontrol/user-level-output-buffers.xml
new file mode 100644
index 000000000..d29a165d4
--- /dev/null
+++ b/reference/outcontrol/user-level-output-buffers.xml
@@ -0,0 +1,637 @@
+
+
+
+
+ Ausgabepuffer auf Benutzerebene
+
+ Ausgabepuffer auf Benutzerebene können aus PHP-Code heraus gestartet,
+ manipuliert und beendet werden.
+ Jeder dieser Puffer umfasst einen Ausgabepuffer
+ und eine zugehörige Ausgabe-Handler-Funktion.
+
+
+
+ Welche Ausgabe wird gepuffert?
+
+ Die Ausgabepuffer auf Benutzerebene von PHP puffern nach ihrem Start
+ die gesamte Ausgabe, bis sie ausgeschaltet werden oder das Skript endet.
+ Ausgabe im Kontext des PHP-Ausgabepuffers auf Benutzerebene
+ ist alles, was PHP anzeigen oder an den Browser zurücksenden würde.
+ In der Praxis ist Ausgabe alles, was nicht aus Daten der Länge null besteht und:
+
+
+
+
+
+
+ Daten, die direkt nach stdout geschrieben werden
+ oder an eine SAPI-Funktion mit ähnlicher Funktionalität übergeben werden,
+ werden von Ausgabepuffern auf Benutzerebene nicht erfasst.
+ Dazu gehört das
+ Schreiben von Daten nach stdout mit fwrite
+ oder das Senden von Headern mit header
+ oder setcookie.
+
+
+
+
+
+ Ausgabepufferung einschalten
+
+ Die Ausgabepufferung kann mit der Funktion ob_start
+ oder durch Setzen der &php.ini;-Einstellungen
+ output_buffering
+ und output_handler
+ eingeschaltet werden.
+ Obwohl beide Ausgabepuffer erzeugen können, ist
+ ob_start flexibler,
+ da sie benutzerdefinierte Funktionen als Ausgabe-Handler akzeptiert
+ und auch die auf dem Puffer erlaubten Operationen (flush, clean, remove)
+ festgelegt werden können.
+ Mit ob_start gestartete Puffer sind ab der Zeile aktiv,
+ in der die Funktion aufgerufen wurde,
+ während diejenigen, die mit
+ output_buffering
+ gestartet wurden, die Ausgabe ab der ersten Zeile des Skripts puffern.
+
+
+ PHP wird außerdem mit einem eingebauten Ausgabe-Handler
+ "URL-Rewriter" ausgeliefert, der seinen eigenen
+ Ausgabepuffer startet und zu jedem Zeitpunkt nur bis zu zwei Instanzen
+ davon zulässt
+ (eine für das URL-Rewriting auf Benutzerebene
+ und eine für die transparente Unterstützung der Session-ID).
+ Diese Puffer können durch Aufruf der Funktion
+ output_add_rewrite_var gestartet werden
+ und/oder durch Aktivieren der &php.ini;-Einstellung
+ session.use_trans_sid.
+
+
+ Die mitgelieferte Erweiterung zlib hat ihren eigenen
+ Ausgabepuffer, der mit der &php.ini;-Einstellung
+ zlib.output_compression
+ aktiviert werden kann.
+
+
+
+ Während "URL-Rewriter" insofern besonders ist,
+ als er zu jedem Zeitpunkt nur bis zu zwei Instanzen davon zulässt,
+ verwenden alle Ausgabepuffer auf Benutzerebene dieselben zugrunde liegenden Puffer,
+ die von ob_start verwendet werden,
+ wobei ihre Funktionalität durch eine benutzerdefinierte Ausgabe-Handler-Funktion implementiert wird.
+ Daher kann ihre gesamte Funktionalität durch Userland-Code emuliert werden.
+
+
+
+
+
+ Verschachtelung von Ausgabepuffern
+
+ Wenn beim Start eines neuen Puffers ein Ausgabepuffer aktiv ist,
+ wird der neue Puffer in den zuvor aktiven Puffer verschachtelt.
+ Der innere Puffer verhält sich gleich, unabhängig davon, ob er verschachtelt ist,
+ aber die von ihm gepufferte Ausgabe wird nicht vom äußeren Puffer gepuffert.
+ Nur die vom inneren Puffer geleerte Ausgabe wird vom äußeren Puffer gepuffert.
+
+
+ Die meisten ob_*-Funktionen arbeiten
+ nur mit dem aktiven Ausgabepuffer (dem zuletzt gestarteten),
+ daher kann nur der aktive Puffer geleert, bereinigt und ausgeschaltet werden.
+ Die Funktionen, die mit anderen Puffern arbeiten, sind
+ ob_list_handlers,
+ die die Liste aller in Verwendung befindlichen Ausgabe-Handler zurückgibt,
+ und ob_get_status,
+ die entweder Informationen nur über den aktiven Puffer
+ oder über alle in Verwendung befindlichen Puffer zurückgeben kann.
+
+
+ Der Aufruf von ob_get_level
+ oder ob_get_status gibt
+ die Verschachtelungsebene des aktiven Ausgabepuffers zurück.
+
+
+
+ Der Wert für identische Ebenen unterscheidet sich zwischen ob_get_level
+ und ob_get_status um eins.
+ Bei ob_get_level
+ ist die erste Ebene 1,
+ während bei ob_get_status
+ die erste Ebene 0 ist.
+
+
+
+
+
+ Puffergröße
+
+ Puffergrößen werden durch Integer ausgedrückt
+ und stellen die Anzahl der Bytes dar, die der Puffer ohne Leeren speichern kann.
+ Wenn die Größe der Ausgabe im Puffer die Größe des Puffers überschreitet,
+ wird der Inhalt des Puffers an den Ausgabe-Handler gesendet,
+ dessen Rückgabewert geleert und der Puffer geleert wird.
+
+
+ Mit Ausnahme von "URL-Rewriter"
+ kann die Größe von Ausgabepuffern beim Start des Puffers festgelegt werden.
+ Wenn sie auf 0 gesetzt ist,
+ ist der Ausgabepuffer nur durch den für PHP verfügbaren Speicher begrenzt.
+ Wenn sie auf 1 gesetzt ist,
+ wird der Puffer nach jedem Codeblock geleert, der
+ eine Ausgabe ungleich der Länge null erzeugt.
+
+
+ Die Größe von Ausgabepuffern kann durch Aufruf von
+ ob_get_status abgerufen werden.
+
+
+ Bei mit ob_start gestarteten Ausgabepuffern
+ wird die Puffergröße auf den ganzzahligen Wert gesetzt, der dem
+ zweiten Parameter chunk_size der Funktion übergeben wird.
+ Wird er weggelassen, ist er auf 0 gesetzt.
+
+
+ Der Ausgabepuffer, der mit
+ output_buffering
+ auf "On" gestartet wurde, hat eine Puffergröße von 0.
+ Wenn er auf einen Integer gesetzt ist, entspricht die Puffergröße dieser Zahl.
+
+
+ Die Puffergröße von "URL-Rewriter" ist auf 0 gesetzt,
+ daher ist er nur durch den für PHP verfügbaren Speicher begrenzt.
+
+
+ Die Größe des Ausgabepuffers von zlib wird durch die
+ &php.ini;-Einstellung
+ zlib.output_compression
+ gesteuert.
+ Wenn sie auf "On" gesetzt ist, beträgt die Puffergröße
+ "16K"/16384.
+ Wenn sie auf einen Integer gesetzt ist, entspricht die Puffergröße dieser Zahl in Bytes.
+
+
+
+
+ Auf Puffern erlaubte Operationen
+
+ Die auf Puffern erlaubten Operationen können gesteuert werden,
+ indem eines der
+ Puffersteuerungs-Flags
+ an den dritten Parameter flags von
+ ob_start übergeben wird.
+ Wird er weggelassen, sind standardmäßig alle Operationen erlaubt.
+ Wird stattdessen 0 verwendet,
+ kann der Puffer nicht geleert, bereinigt oder entfernt werden,
+ aber sein Inhalt kann weiterhin abgerufen werden.
+
+
+ PHP_OUTPUT_HANDLER_CLEANABLE erlaubt
+ ob_clean, den Inhalt des Puffers zu bereinigen.
+
+
+
+ Das Fehlen des Flags PHP_OUTPUT_HANDLER_CLEANABLE
+ verhindert nicht, dass ob_end_clean
+ oder ob_get_clean den Inhalt des Puffers leeren.
+
+
+
+ PHP_OUTPUT_HANDLER_FLUSHABLE erlaubt
+ ob_flush, den Inhalt des Puffers zu leeren.
+
+
+
+ Das Fehlen des Flags PHP_OUTPUT_HANDLER_FLUSHABLE
+ verhindert nicht, dass ob_end_flush
+ oder ob_get_flush den Inhalt des Puffers leeren.
+
+
+
+ PHP_OUTPUT_HANDLER_REMOVABLE erlaubt
+ ob_end_clean, ob_end_flush,
+ ob_get_clean oder ob_get_flush,
+ den Puffer auszuschalten.
+
+
+ PHP_OUTPUT_HANDLER_STDFLAGS,
+ die Kombination der drei Flags, erlaubt, dass jede der drei Operationen
+ auf dem Puffer ausgeführt werden kann.
+
+
+
+
+ Leeren, Zugreifen auf und Bereinigen von Pufferinhalten
+
+ Das Leeren sendet und verwirft den Inhalt des aktiven Puffers.
+ Ausgabepuffer werden geleert, wenn die Größe der Ausgabe
+ die Größe des Puffers überschreitet; das Skript endet oder
+ ob_flush, ob_end_flush
+ oder ob_get_flush aufgerufen wird.
+
+
+
+ Der Aufruf von ob_end_flush
+ oder ob_get_flush schaltet den aktiven Puffer aus.
+
+
+
+
+ Das Leeren von Puffern leert den Rückgabewert des Ausgabe-Handlers,
+ der sich vom Inhalt des Puffers unterscheiden kann.
+ Zum Beispiel komprimiert die Verwendung von ob_gzhandler
+ die Ausgabe und leert die komprimierte Ausgabe.
+
+
+
+ Der Inhalt des aktiven Puffers kann durch Aufruf von
+ ob_get_contents, ob_get_clean
+ oder ob_get_flush abgerufen werden.
+
+
+ Wenn nur die Länge des Pufferinhalts benötigt wird,
+ geben ob_get_length oder ob_get_status
+ die Länge des Inhalts in Bytes zurück.
+
+
+
+ Der Aufruf von ob_get_clean
+ oder ob_get_flush schaltet den aktiven Puffer aus,
+ nachdem dessen Inhalt zurückgegeben wurde.
+
+
+
+ Der Inhalt des aktiven Puffers kann durch Aufruf von
+ ob_clean, ob_end_clean
+ oder ob_get_clean bereinigt werden.
+
+
+
+ Der Aufruf von ob_end_clean
+ oder ob_get_clean schaltet den aktiven Puffer aus.
+
+
+
+
+
+ Puffer ausschalten
+
+ Ausgabepuffer können durch Aufruf von
+ ob_end_clean, ob_end_flush,
+ ob_get_flush oder ob_get_clean
+ ausgeschaltet werden.
+
+
+
+ Ausgabepuffer, die ohne das Flag
+ PHP_OUTPUT_HANDLER_REMOVABLE gestartet wurden,
+ können nicht ausgeschaltet werden und können ein E_NOTICE erzeugen.
+
+
+
+ Jeder Ausgabepuffer, der bis zum Ende des Skripts
+ oder beim Aufruf von exit nicht geschlossen wurde, wird
+ vom Shutdown-Prozess von PHP geleert und ausgeschaltet.
+ Die Puffer werden in umgekehrter Reihenfolge
+ ihres Starts geleert und ausgeschaltet.
+ Der zuletzt gestartete Puffer wird zuerst,
+ der zuerst gestartete Puffer wird zuletzt geleert und ausgeschaltet.
+
+
+
+ Wenn das Leeren des Pufferinhalts nicht erwünscht ist,
+ sollte ein benutzerdefinierter Ausgabe-Handler verwendet werden, um das Leeren während des Shutdowns zu verhindern.
+
+
+
+
+
+ Ausgabe-Handler
+
+ Ausgabe-Handler sind callables, die mit Ausgabepuffern verknüpft sind
+ und durch Aufruf von ob_clean,
+ ob_flush, ob_end_flush,
+ ob_get_flush, ob_end_clean,
+ ob_get_clean oder während des Shutdown-Prozesses von PHP aufgerufen werden.
+
+
+
+ Der Shutdown-Prozess leert den Rückgabewert des Handlers.
+
+
+
+ Wird er beim Start des Ausgabepuffers weggelassen oder &null; gesetzt,
+ wird der interne "default output handler" verwendet,
+ der beim Aufruf den unveränderten Inhalt des Puffers zurückgibt.
+ Ausgabe-Handler können verwendet werden, um eine veränderte Version
+ des Pufferinhalts zurückzugeben und/oder Nebenwirkungen zu haben (z. B. Header senden).
+
+
+ PHP wird mit zwei internen Ausgabe-Handlern ausgeliefert:
+ "default output handler"
+ und "URL-Rewriter" (der in
+ seinen eigenen Ausgabepuffer integriert ist und von dem nur bis zu zwei Instanzen gestartet werden können).
+
+
+ Die mitgelieferten Erweiterungen umfassen vier zusätzliche Ausgabe-Handler:
+ mb_output_handler, ob_gzhandler,
+ ob_iconv_handler, ob_tidyhandler.
+
+
+
+
+ Arbeiten mit Ausgabe-Handlern
+
+ Beim Aufruf werden Ausgabe-Handlern der Inhalt des Puffers
+ und eine Bitmaske übergeben, die den Status der Ausgabepufferung angibt.
+
+
+
+ string
+
+ handler
+
+
+ string
+ buffer
+
+
+ int
+ phase
+
+
+
+
+ buffer
+
+
+ Inhalt des Ausgabepuffers.
+
+
+
+
+ phase
+
+
+ Bitmaske der
+
+ Konstanten
+ PHP_OUTPUT_HANDLER_*
+ .
+
+
+
+
+
+
+
+ Der Aufruf einer der folgenden Funktionen innerhalb eines Ausgabe-Handlers
+ führt zu einem fatalen Fehler:
+ ob_clean, ob_end_clean,
+ ob_end_flush, ob_flush,
+ ob_get_clean, ob_get_flush,
+ ob_start.
+
+
+
+
+ Wenn das PHP_OUTPUT_HANDLER_DISABLED-Flag eines Handlers gesetzt ist,
+ wird der Handler beim Aufruf von
+ ob_end_clean, ob_end_flush,
+ ob_get_clean, ob_get_flush,
+ ob_clean,
+ ob_flush
+ oder während des Shutdown-Prozesses von PHP nicht aufgerufen.
+ Vor PHP 8.4.0 hatte dieses Flag beim Aufruf von ob_clean
+ oder ob_flush keine Wirkung.
+
+
+
+
+ Das Arbeitsverzeichnis des Skripts kann sich innerhalb der Shutdown-Funktion
+ bei manchen Webservern ändern, z. B. Apache oder dem eingebauten Webserver.
+
+
+
+
+
+ An Ausgabe-Handler übergebene Flags
+
+ Die an den zweiten Parameter phase
+ des Ausgabe-Handlers übergebene Bitmaske liefert Informationen über den Aufruf des Handlers.
+
+
+
+ Die Bitmaske kann mehr als ein Flag enthalten,
+ und der bitweise Operator & sollte verwendet werden,
+ um zu prüfen, ob ein Flag gesetzt ist.
+
+
+
+
+ Der Wert von PHP_OUTPUT_HANDLER_WRITE und seinem Alias
+ PHP_OUTPUT_HANDLER_CONT ist 0,
+ daher kann nur durch Verwendung eines
+ Gleichheitsoperators
+ (== oder ===) festgestellt werden, ob es gesetzt ist.
+
+
+
+ Die folgenden Flags werden in einer bestimmten Phase des Lebenszyklus des Handlers gesetzt:
+ PHP_OUTPUT_HANDLER_START wird gesetzt,
+ wenn ein Handler zum ersten Mal aufgerufen wird.
+ PHP_OUTPUT_HANDLER_FINAL
+ oder sein Alias PHP_OUTPUT_HANDLER_END
+ wird gesetzt, wenn ein Handler zum letzten Mal aufgerufen wird,
+ d. h. wenn er ausgeschaltet wird. Dieses Flag wird auch gesetzt,
+ wenn Puffer vom Shutdown-Prozess von PHP ausgeschaltet werden.
+
+
+ Die folgenden Flags werden durch einen bestimmten Aufruf des Handlers gesetzt:
+ PHP_OUTPUT_HANDLER_FLUSH wird gesetzt,
+ wenn der Handler durch Aufruf von ob_flush aufgerufen wird.
+ PHP_OUTPUT_HANDLER_WRITE
+ oder sein Alias PHP_OUTPUT_HANDLER_CONT
+ wird gesetzt, wenn die Größe seines Inhalts der Größe des Puffers entspricht oder sie überschreitet
+ und der Handler aufgerufen wird, während der Puffer automatisch geleert wird.
+ PHP_OUTPUT_HANDLER_FLUSH wird gesetzt,
+ wenn der Handler durch Aufruf von ob_clean,
+ ob_end_clean oder ob_get_clean aufgerufen wird.
+ Wenn ob_end_clean oder ob_get_clean
+ aufgerufen wird, wird auch PHP_OUTPUT_HANDLER_FINAL gesetzt.
+
+
+
+ Wenn ob_end_flush oder ob_get_flush
+ aufgerufen wird, wird PHP_OUTPUT_HANDLER_FINAL gesetzt,
+ aber PHP_OUTPUT_HANDLER_FLUSH nicht.
+
+
+
+
+
+ Rückgabewerte von Ausgabe-Handlern
+
+ Der Rückgabewert des Ausgabe-Handlers wird intern gemäß der
+ standardmäßigen PHP-Typsemantik in eine Zeichenkette umgewandelt, mit zwei Ausnahmen:
+ arrays und booleans.
+
+
+ Arrays werden in die Zeichenkette "Array" umgewandelt,
+ aber die Warnung Array to string conversion
+ wird nicht ausgelöst.
+
+
+ Wenn der Handler &false; zurückgibt, wird der Inhalt des Puffers zurückgegeben.
+ Wenn der Handler &true; zurückgibt, wird eine leere Zeichenkette zurückgegeben.
+
+
+
+ Wenn ein Handler &false; zurückgibt oder eine Exception wirft,
+ wird sein Status-Flag PHP_OUTPUT_HANDLER_DISABLED gesetzt.
+
+
+
+
+
+ In Ausgabe-Handlern geworfene Exceptions
+
+ Wenn in einem Ausgabe-Handler eine nicht abgefangene Exception geworfen wird,
+ wird das Programm beendet und der Handler
+ vom Shutdown-Prozess aufgerufen, woraufhin
+ die Fehlermeldung "Uncaught Exception" geleert wird.
+
+
+ Wenn die nicht abgefangene Exception in einem Handler geworfen wird,
+ der von ob_flush,
+ ob_end_flush oder ob_get_flush aufgerufen wird,
+ wird der Inhalt des Puffers vor der Fehlermeldung geleert.
+
+
+ Wenn in einem Ausgabe-Handler während des Shutdowns eine nicht abgefangene Exception geworfen wird,
+ wird der Handler beendet und weder der Inhalt des Puffers
+ noch die Fehlermeldung geleert.
+
+
+
+ Wenn ein Handler eine Exception wirft,
+ wird sein Status-Flag PHP_OUTPUT_HANDLER_DISABLED gesetzt.
+
+
+
+
+
+ In Ausgabe-Handlern ausgelöste Fehler
+
+ Wenn in einem Ausgabe-Handler ein nicht fataler Fehler ausgelöst wird,
+ setzt das Programm seine Ausführung fort.
+
+
+ Wenn der nicht fatale Fehler in einem Handler ausgelöst wird, der von
+ ob_flush, ob_end_flush
+ oder ob_get_flush aufgerufen wird,
+ leert der Puffer abhängig vom Rückgabewert des Handlers bestimmte Daten.
+ Wenn der Handler &false; zurückgibt, werden der Puffer und die Fehlermeldung geleert.
+ Wenn er etwas anderes zurückgibt, wird der Rückgabewert des Handlers geleert,
+ aber nicht die Fehlermeldung.
+
+
+
+ Wenn ein Handler &false; zurückgibt,
+ wird sein Status-Flag PHP_OUTPUT_HANDLER_DISABLED gesetzt.
+
+
+
+ Wenn in einem Ausgabe-Handler ein fataler Fehler ausgelöst wird,
+ wird das Programm beendet und der Handler
+ vom Shutdown-Prozess aufgerufen, woraufhin die Fehlermeldung geleert wird.
+
+
+ Wenn der fatale Fehler in einem Handler ausgelöst wird,
+ der von ob_flush,
+ ob_end_flush oder ob_get_flush aufgerufen wird,
+ wird der Inhalt der Puffer vor der Fehlermeldung geleert.
+
+
+ Wenn während des Shutdowns in einem Ausgabe-Handler ein fataler Fehler ausgelöst wird,
+ wird das Programm beendet, ohne den Puffer oder die Fehlermeldung zu leeren.
+
+
+
+
+ Ausgabe in Ausgabe-Handlern
+
+ Unter bestimmten Umständen wird die im Handler erzeugte Ausgabe
+ zusammen mit dem Inhalt des Puffers geleert.
+ Diese Ausgabe wird nicht an den Puffer angehängt und ist nicht Teil der Zeichenkette,
+ die von ob_get_flush zurückgegeben wird.
+
+
+ Während Leeroperationen (Aufruf von ob_flush,
+ ob_end_flush, ob_get_flush
+ und während des Shutdowns)
+ wird, wenn der Rückgabewert eines Handlers &false; ist,
+ der Inhalt des Puffers gefolgt von der Ausgabe geleert.
+ Wenn der Handler nicht während des Shutdowns aufgerufen wird,
+ führt das Werfen einer Exception durch den Handler oder der Aufruf von exit
+ zum gleichen Verhalten.
+
+
+
+ Wenn ein Handler &false; zurückgibt,
+ wird sein Status-Flag PHP_OUTPUT_HANDLER_DISABLED gesetzt.
+
+
+
+
+
+ Status-Flags von Ausgabe-Handlern
+
+ Die
+
+ Handler-Status-Flags
+ der Bitmaske flags des Puffers
+ werden jedes Mal gesetzt, wenn der Ausgabe-Handler aufgerufen wird,
+ und sind Teil der von ob_get_status zurückgegebenen
+ flags.
+ Wenn der Handler erfolgreich ausgeführt wird und nicht &false; zurückgibt,
+ werden PHP_OUTPUT_HANDLER_STARTED und
+ PHP_OUTPUT_HANDLER_PROCESSED gesetzt.
+ Wenn der Handler &false; zurückgibt oder während der Ausführung eine Exception wirft,
+ werden PHP_OUTPUT_HANDLER_STARTED und
+ PHP_OUTPUT_HANDLER_DISABLED gesetzt.
+
+
+
+ Wenn das PHP_OUTPUT_HANDLER_DISABLED-Flag eines Handlers gesetzt ist,
+ wird der Handler beim Aufruf von
+ ob_end_clean, ob_end_flush,
+ ob_get_clean, ob_get_flush,
+ ob_clean,
+ ob_flush
+ oder während des Shutdown-Prozesses von PHP nicht aufgerufen.
+ Vor PHP 8.4.0 hatte dieses Flag beim Aufruf von ob_clean
+ oder ob_flush keine Wirkung.
+
+
+
+
+
+
diff --git a/reference/pdo/pdo/connect.xml b/reference/pdo/pdo/connect.xml
new file mode 100644
index 000000000..e61daa2e7
--- /dev/null
+++ b/reference/pdo/pdo/connect.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+ PDO::connect
+ Stellt eine Verbindung zu einer Datenbank her und gibt für Treiber, die dies unterstützen, eine PDO-Unterklasse zurück
+
+
+
+ &reftitle.description;
+
+ publicstaticstaticPDO::connect
+ stringdsn
+ stringnullusername&null;
+ #[\SensitiveParameter]stringnullpassword&null;
+ arraynulloptions&null;
+
+
+ Erzeugt eine Instanz einer PDO-Unterklasse für die
+ Datenbank, mit der eine Verbindung hergestellt wird, sofern sie existiert,
+ andernfalls wird eine generische PDO-Instanz zurückgegeben.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Gibt eine Instanz einer PDO-Unterklasse für den
+ entsprechenden PDO-Treiber zurück, sofern sie existiert,
+ andernfalls eine generische PDO-Instanz.
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+ Pdo\Dblib
+ Pdo\Firebird
+ Pdo\Mysql
+ Pdo\Odbc
+ Pdo\Pgsql
+ Pdo\Sqlite
+ PDO::__construct
+
+
+
+
+
diff --git a/reference/pdo_cubrid/constants.xml b/reference/pdo_cubrid/constants.xml
new file mode 100644
index 000000000..eaedda2c6
--- /dev/null
+++ b/reference/pdo_cubrid/constants.xml
@@ -0,0 +1,216 @@
+
+
+
+
+ &reftitle.constants;
+ &pdo.driver-constants;
+
+ Die folgenden Konstanten können beim Setzen des Datenbankattributs verwendet werden.
+ Sie können an PDO::getAttribute oder
+ PDO::setAttribute übergeben werden.
+
+ PDO::CUBRID-Attribut-Flags
+
+
+
+ Konstante
+ Beschreibung
+
+
+
+
+ PDO::CUBRID_ATTR_ISOLATION_LEVEL
+ Transaktionsisolationsebene für die Datenbankverbindung.
+
+
+ PDO::CUBRID_ATTR_LOCK_TIMEOUT
+ Transaktions-Timeout in Sekunden.
+
+
+ PDO::CUBRID_ATTR_MAX_STRING_LENGTH
+ Nur lesbar. Die maximale Zeichenkettenlänge für die Datentypen
+ bit, varbit, char, varchar, nchar und nchar varying bei Verwendung der
+ CUBRID-PDO-API.
+
+
+
+
+
+
+
+ Die folgenden Konstanten können beim Setzen der Transaktionsisolationsebene
+ verwendet werden. Sie können an PDO::getAttribute übergeben oder
+ von PDO::setAttribute zurückgegeben werden.
+
+ PDO::CUBRID-Isolationsebenen-Flags
+
+
+
+ Konstante
+ Beschreibung
+
+
+
+
+ PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE
+ Die niedrigste Isolationsebene (1). Für das Tupel kann ein
+ Dirty Read, Non-Repeatable Read oder Phantom Read auftreten, und für
+ die Tabelle kann ebenfalls ein Non-Repeatable Read auftreten.
+
+
+ PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE
+ Eine relativ niedrige Isolationsebene (2). Ein Dirty Read tritt
+ nicht auf, aber ein Non-Repeatable Read oder Phantom Read kann auftreten.
+
+
+ PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE
+ Die Standardisolation von CUBRID (3). Für das Tupel kann ein
+ Dirty Read, Non-Repeatable Read oder Phantom Read auftreten, aber für
+ die Tabelle ist ein Repeatable Read gewährleistet.
+
+
+ PDO::TRAN_REP_CLASS_COMMIT_INSTANCE
+ Eine relativ niedrige Isolationsebene (4). Ein Dirty Read tritt
+ nicht auf, aber ein Non-Repeatable Read oder Phantom Read kann.
+
+
+ PDO::TRAN_REP_CLASS_REP_INSTANCE
+ Eine relativ hohe Isolationsebene (5). Ein Dirty Read oder
+ Non-Repeatable Read tritt nicht auf, aber ein Phantom Read kann.
+
+
+ PDO::TRAN_SERIALIZABLE
+ Die höchste Isolationsebene (6). Probleme im Zusammenhang mit
+ Nebenläufigkeit (z. B. Dirty Read, Non-Repeatable Read, Phantom Read usw.)
+ treten nicht auf.
+
+
+
+
+
+
+
+ Die folgenden Konstanten können beim Abrufen von Schemainformationen verwendet werden.
+ Sie können an PDO::cubrid_schema übergeben werden.
+
+ PDO::CUBRID-Schema-Flags
+
+
+
+ Konstante
+ Beschreibung
+
+
+
+
+ PDO::CUBRID_SCH_TABLE
+ Ruft Name und Typ einer Tabelle in CUBRID ab.
+
+
+ PDO::CUBRID_SCH_VIEW
+ Ruft Name und Typ einer View in CUBRID ab.
+
+
+ PDO::CUBRID_SCH_QUERY_SPEC
+ Ruft die Abfragedefinition einer View ab.
+
+
+ PDO::CUBRID_SCH_ATTRIBUTE
+ Ruft die Attribute einer Tabellenspalte ab.
+
+
+ PDO::CUBRID_SCH_TABLE_ATTRIBUTE
+ Ruft die Attribute einer Tabelle ab.
+
+
+ PDO::CUBRID_SCH_METHOD
+ Ruft die Instanzmethode ab. Die Instanzmethode ist eine Methode,
+ die von einer Klasseninstanz aufgerufen wird. Sie wird häufiger verwendet
+ als die Klassenmethode, da die meisten Operationen in der Instanz
+ ausgeführt werden.
+
+
+ PDO::CUBRID_SCH_TABLE_METHOD
+ Ruft die Klassenmethode ab. Die Klassenmethode ist eine Methode,
+ die von einem Klassenobjekt aufgerufen wird. Sie wird üblicherweise
+ verwendet, um eine neue Klasseninstanz zu erstellen oder zu
+ initialisieren. Sie wird auch verwendet, um auf Klassenattribute
+ zuzugreifen oder sie zu aktualisieren.
+
+
+ PDO::CUBRID_SCH_METHOD_FILE
+ Ruft die Informationen der Datei ab, in der die Methode der
+ Tabelle definiert ist.
+
+
+ PDO::CUBRID_SCH_SUPER_TABLE
+ Ruft Name und Typ der Tabelle ab, von der die Tabelle Attribute
+ erbt.
+
+
+ PDO::CUBRID_SCH_SUB_TABLE
+ Ruft Name und Typ der Tabelle ab, die Attribute von dieser
+ Tabelle erbt.
+
+
+ PDO::CUBRID_SCH_CONSTRAINT
+ Ruft die Tabellen-Constraints ab.
+
+
+ PDO::CUBRID_SCH_TRIGGER
+ Ruft die Tabellen-Trigger ab.
+
+
+ PDO::CUBRID_SCH_TABLE_PRIVILEGE
+ Ruft die Berechtigungsinformationen einer Tabelle ab.
+
+
+ PDO::CUBRID_SCH_COL_PRIVILEGE
+ Ruft die Berechtigungsinformationen einer Spalte ab.
+
+
+ PDO::CUBRID_SCH_DIRECT_SUPER_TABLE
+ Ruft die direkte Supertabelle einer Tabelle ab.
+
+
+ PDO::CUBRID_SCH_PRIMARY_KEY
+ Ruft den Primärschlüssel einer Tabelle ab.
+
+
+ PDO::CUBRID_SCH_IMPORTED_KEYS
+ Ruft die importierten Schlüssel einer Tabelle ab.
+
+
+ PDO::CUBRID_SCH_EXPORTED_KEYS
+ Ruft die exportierten Schlüssel einer Tabelle ab.
+
+
+ PDO::CUBRID_SCH_CROSS_REFERENCE
+ Ruft die Referenzbeziehung zweier Tabellen ab.
+
+
+
+
+
+
+ &ini.descriptions.title;
+
+
+
+
+
+ phar.readonly
+ bool
+
+
+
+ Diese Option deaktiviert das Erstellen oder Verändern von Phar-Archiven
+ über den Stream phar oder die Schreibunterstützung des
+ Phar-Objekts. Diese Einstellung sollte auf
+ Produktionsmaschinen immer aktiviert sein, da die bequeme
+ Schreibunterstützung der Phar-Erweiterung in Kombination mit anderen
+ gängigen Sicherheitslücken die unkomplizierte Erstellung eines
+ PHP-basierten Virus erlauben könnte.
+
+
+
+ Diese Einstellung kann aus Sicherheitsgründen nur in der php.ini
+ deaktiviert werden. Wenn phar.readonly in der php.ini
+ deaktiviert ist, darf der Benutzer phar.readonly in
+ einem Skript aktivieren oder später deaktivieren. Wenn
+ phar.readonly in der php.ini aktiviert ist, darf ein
+ Skript die INI-Variable harmlos "erneut aktivieren", sie aber
+ nicht deaktivieren.
+
+
+
+
+
+
+
+ phar.require_hash
+ bool
+
+
+
+ Diese Option erzwingt, dass alle geöffneten Phar-Archive eine Art
+ Signatur enthalten (derzeit werden MD5, SHA1, SHA256, SHA512 und OpenSSL unterstützt), und
+ verweigert die Verarbeitung jedes Phar-Archivs, das keine Signatur enthält.
+
+
+
+ Diese Einstellung kann nur in der php.ini deaktiviert werden.
+ Wenn phar.require_hash in der php.ini deaktiviert ist,
+ darf der Benutzer phar.require_hash in einem Skript
+ aktivieren oder später deaktivieren. Wenn
+ phar.require_hash in der php.ini aktiviert ist, darf
+ ein Skript die INI-Variable harmlos "erneut aktivieren", sie
+ aber nicht deaktivieren.
+
+
+ Diese Einstellung hat keine Auswirkung auf das Lesen einfacher
+ tar-Dateien mit der Klasse PharData.
+
+
+
+
+ phar.require_hash bietet an sich keine Sicherheit,
+ es ist lediglich eine Maßnahme gegen das versehentliche Ausführen
+ beschädigter Phar-Archive, denn jeder, der das Phar manipulieren könnte,
+ könnte die Signatur anschließend leicht korrigieren.
+
+
+
+
+
+
+
+ phar.cache_list
+ string
+
+
+
+ Erlaubt es, Phar-Archive abzubilden, damit sie beim Start des Webservers
+ vorab geparst werden, was eine Leistungsverbesserung bietet, die das
+ Ausführen von Dateien aus einem Phar-Archiv sehr nahe an die
+ Geschwindigkeit bringt, mit der diese Dateien aus einer herkömmlichen
+ festplattenbasierten Installation ausgeführt werden.
+
+ Verwendungsbeispiel für phar.cache_list
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/svn/functions/svn-fs-apply-text.xml b/reference/svn/functions/svn-fs-apply-text.xml
new file mode 100644
index 000000000..6dfc852c4
--- /dev/null
+++ b/reference/svn/functions/svn-fs-apply-text.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+ svn_fs_apply_text
+ Erzeugt und gibt einen Stream zurück, der zum Ersetzen des Inhalts einer Datei verwendet wird
+
+
+
+ &reftitle.description;
+
+ resourcesvn_fs_apply_text
+ resourceroot
+ stringpath
+
+ &warn.undocumented.func;
+
+ Erzeugt und gibt einen Stream zurück, der zum Ersetzen des Inhalts einer Datei verwendet wird.
+
+
+
+
+ &reftitle.notes;
+ &warn.experimental.func;
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/reference/sync/book.xml b/reference/sync/book.xml
new file mode 100644
index 000000000..5a7dc6f8f
--- /dev/null
+++ b/reference/sync/book.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+ Sync
+ Sync
+
+
+ &reftitle.intro;
+
+ Die Erweiterung sync führt plattformübergreifende Synchronisationsobjekte in PHP ein.
+ Benannte und unbenannte Objekte vom Typ Mutex, Semaphore, Event, Reader-Writer und
+ benannte Shared-Memory-Objekte stellen Synchronisation auf Betriebssystemebene sowohl auf
+ POSIX- (z. B. Linux) als auch auf Windows-Plattformen bereit.
+
+
+ Während des Abbaus der Erweiterung erfolgt eine automatische Bereinigung der belegten
+ Synchronisationsobjekte. Das bedeutet, dass Objekte nicht in einem unbekannten Zustand
+ zurückbleiben, wenn PHP ein Skript vorzeitig beendet (z. B. weil die Ausführungszeit des
+ Skripts überschritten wird). Die einzige Ausnahme ist, wenn PHP selbst abstürzt
+ (z. B. durch einen internen Pufferüberlauf).
+
+
+ Unbenannte Synchronisationsobjekte sind außerhalb eines Multithread-Szenarios von
+ wenig Nutzen. Unbenannte Objekte sind in Verbindung mit der PECL-Erweiterung pthreads
+ nützlicher.
+
+
+
+ Benannte Objekte erfordern auf allen Systemen besondere Sorgfalt bei der Verwendung.
+ Wenn ein Objekt mit einem bestimmten Satz von Parametern instanziiert wird, muss es
+ immer mit diesen Parametern instanziiert werden, andernfalls landet das Objekt
+ wahrscheinlich in einem inkonsistenten Zustand, bis das System neu gestartet wird
+ oder ein Systemadministrator das Chaos beseitigt.
+
+
+
+
+ &reference.sync.setup;
+ &reference.sync.syncmutex;
+ &reference.sync.syncsemaphore;
+ &reference.sync.syncevent;
+ &reference.sync.syncreaderwriter;
+ &reference.sync.syncsharedmemory;
+
+
+
diff --git a/reference/xml/functions/xml-parser-set-option.xml b/reference/xml/functions/xml-parser-set-option.xml
new file mode 100644
index 000000000..a827f742e
--- /dev/null
+++ b/reference/xml/functions/xml-parser-set-option.xml
@@ -0,0 +1,196 @@
+
+
+
+
+
+ xml_parser_set_option
+ Setzt Optionen in einem XML-Parser
+
+
+
+ &reftitle.description;
+
+ boolxml_parser_set_option
+ XMLParserparser
+ intoption
+ stringintboolvalue
+
+
+ Setzt eine Option in einem XML-Parser.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ parser
+
+
+ Eine Referenz auf den XML-Parser, in dem eine Option gesetzt werden soll.
+
+
+
+
+ option
+
+
+ Welche Option gesetzt werden soll. Siehe unten.
+
+
+ Die folgenden Optionen sind verfügbar:
+
+ XML-Parser-Optionen
+
+
+
+ Optionskonstante
+ Datentyp
+ Beschreibung
+
+
+
+
+ XML_OPTION_CASE_FOLDING
+ bool
+
+ Steuert, ob die Groß-/Kleinschreibungsumwandlung für
+ diesen XML-Parser aktiviert ist. Standardmäßig aktiviert.
+
+
+
+ XML_OPTION_PARSE_HUGE
+ bool
+
+ Erlaubt das Parsen von Dokumenten, die größer als 10 MB sind.
+ Diese Option sollte nur aktiviert werden, wenn die Dokumentgröße
+ begrenzt ist, da sie andernfalls zu einem DoS führen könnte.
+ Diese Option ist nur verfügbar, wenn libxml2 verwendet wird.
+
+
+
+ XML_OPTION_SKIP_TAGSTART
+ integer
+
+ Gibt an, wie viele Zeichen am Anfang eines Tag-Namens übersprungen
+ werden sollen.
+
+
+
+ XML_OPTION_SKIP_WHITE
+ bool
+
+ Ob Werte übersprungen werden sollen, die aus Leerraumzeichen bestehen.
+
+
+
+ XML_OPTION_TARGET_ENCODING
+ string
+
+ Legt fest, welche Zielkodierung in
+ diesem XML-Parser verwendet werden soll. Standardmäßig ist sie auf
+ dieselbe wie die von xml_parser_create verwendete
+ Quellkodierung gesetzt.
+ Unterstützte Zielkodierungen sind ISO-8859-1,
+ US-ASCII und UTF-8.
+
+
+
+
+
+
+
+
+
+ value
+
+
+ Der neue Wert der Option.
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Gibt bei Erfolg &true; zurück. Im Fehlerfall wird &false; zurückgegeben.
+
+
+
+
+ &reftitle.errors;
+
+ Wirft einen ValueError, wenn ein ungültiger Wert an
+ option übergeben wird.
+
+
+ Vor PHP 8.0.0 erzeugte die Übergabe eines ungültigen Werts an
+ option ein E_WARNING
+ und ließ die Funktion &false; zurückgeben.
+
+
+
+
+ &reftitle.changelog;
+
+
+
+
+ &Version;
+ &Description;
+
+
+
+
+ 8.4.0
+
+ Die Option XML_OPTION_PARSE_HUGE wurde hinzugefügt.
+
+
+
+ 8.3.0
+
+ Der Parameter value akzeptiert nun auch Booleans.
+ Die Optionen XML_OPTION_CASE_FOLDING und XML_OPTION_SKIP_WHITE
+ sind nun boolesche Optionen.
+
+
+ &xml.changelog.parser-param;
+
+ 8.0.0
+
+ Es wird nun ein ValueError geworfen, wenn
+ option ungültig ist.
+
+
+
+
+
+
+
+
+
diff --git a/reference/yaconf/yaconf.xml b/reference/yaconf/yaconf.xml
new file mode 100644
index 000000000..9fe0ed781
--- /dev/null
+++ b/reference/yaconf/yaconf.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ Die Yaconf-Klasse
+ Yaconf
+
+
+
+
+
+ &reftitle.intro;
+
+ Yaconf ist ein Konfigurationscontainer.
+ Er parst INI-Dateien und speichert das Ergebnis in
+ PHP beim Start von PHP, das Ergebnis bleibt
+ während des gesamten PHP-Lebenszyklus erhalten.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ Yaconf
+
+
+
+
+ Yaconf
+
+
+
+
+ &Methods;
+
+
+
+
+
+
+
+
+ &reference.yaconf.entities.yaconf;
+
+
+
+
diff --git a/reference/yar/yar_concurrent_client/loop.xml b/reference/yar/yar_concurrent_client/loop.xml
new file mode 100644
index 000000000..7e228a4c3
--- /dev/null
+++ b/reference/yar/yar_concurrent_client/loop.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+ Yar_Concurrent_Client::loop
+ Sendet alle Aufrufe
+
+
+
+ &reftitle.description;
+
+ publicstaticboolYar_Concurrent_Client::loop
+ callablecallback
+ callableerror_callback
+
+
+ Sendet alle registrierten entfernten RPC-Aufrufe.
+
+
+
+
+ &reftitle.parameters;
+
+
+ callback
+
+
+ Wenn dieser Callback gesetzt ist, ruft Yar ihn auf, nachdem alle
+ Aufrufe gesendet wurden und bevor eine Antwort zurückkommt, mit einem
+ $callinfo von NULL.
+
+
+ Wenn der Benutzer dann beim Registrieren des nebenläufigen Aufrufs
+ keinen Callback angegeben hat, wird dieser Callback zur Verarbeitung
+ der Antwort verwendet, andernfalls wird der beim Registrieren
+ angegebene Callback verwendet.
+
+
+
+
+ error_callback
+
+
+ Wenn dieser Callback gesetzt ist, ruft Yar ihn auf, wenn ein Fehler
+ auftritt.
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Beispiel für Yar_Concurrent_Client::loop
+
+ "json"));
+ //dieser Server akzeptiert den json-Packager
+Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
+ //benutzerdefiniertes Timeout
+
+Yar_Concurrent_Client::loop("callback", "error_callback"); //sendet die Anfragen,
+ //der error_callback ist optional
+?>
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+ &reftitle.seealso;
+
+ Yar_Concurrent_Client::call
+ Yar_Concurrent_Client::reset
+ Yar_Server::__construct
+ Yar_Server::handle
+
+
+
+
+
+
diff --git a/reference/yaz/functions/yaz-es.xml b/reference/yaz/functions/yaz-es.xml
new file mode 100644
index 000000000..952eeb0ed
--- /dev/null
+++ b/reference/yaz/functions/yaz-es.xml
@@ -0,0 +1,147 @@
+
+
+
+
+
+ yaz_es
+
+ Bereitet einen Extended-Service-Request vor
+
+
+
+ &reftitle.description;
+
+ voidyaz_es
+
+ resourceid
+
+
+ stringtype
+
+
+ arrayargs
+
+
+
+ Diese Funktion bereitet einen Extended-Service-Request vor.
+ Extended Services sind eine Familie verschiedener Z39.50-Dienste wie
+ Record Update, Item Order, Datenbankverwaltung usw.
+
+
+
+ Viele Z39.50-Server unterstützen keine Extended Services.
+
+
+
+ Die Funktion yaz_es erzeugt ein Paket für einen
+ Extended-Service-Request und stellt es in eine Warteschlange von Operationen.
+ Mit yaz_wait werden die Requests an den Server gesendet.
+ Nach Abschluss von yaz_wait sollte das Ergebnis der
+ Extended-Service-Operation mit einem Aufruf von
+ yaz_es_result abgerufen werden.
+
+
+
+ &reftitle.parameters;
+
+
+
+ id
+
+
+ Die von yaz_connect zurückgegebene Verbindungsressource.
+
+
+
+
+ type
+
+
+ Eine Zeichenkette, die den Typ des Extended Service angibt:
+ itemorder (Item Order),
+ create (Datenbank erstellen),
+ drop (Datenbank löschen),
+ commit (Commit-Operation),
+ update (Datensatz aktualisieren),
+ xmlupdate (XML-Aktualisierung).
+ Jeder Typ wird im folgenden Abschnitt beschrieben.
+
+
+
+
+
+ args
+
+
+ Ein Array mit Optionen für Extended Services sowie
+ paketspezifischen Optionen. Die Optionen sind identisch mit jenen,
+ die in der C-API von ZOOM C angeboten werden. Siehe die
+ ZOOM Extended Services.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+ &reftitle.examples;
+
+ Datensatz aktualisieren
+
+ "some title",
+ "syntax" => "xml",
+ "action" => "specialUpdate"
+);
+yaz_es($con, "update", $args);
+yaz_wait();
+$result = yaz_es_result($id);
+?>
+]]>
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ yaz_es_result
+
+
+
+
+
+
+