# php_manual

id: readline
type: function
doc:
<comment>Description:</comment>
  Liest eine Zeile
  
  Liest eine einzelne Zeile vom Benutzer ein. Sie müssen diese Zeile selbst mittels
  <strong>readline_add_history()</strong> zur History hinzufügen.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$prompt</strong>  Sie können eine Zeichenkette angeben, mit dem Sie den Benutzer zur Eingabe
                        auffordern.

<comment>Return:</comment>
  <info>string|false</info>  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 <info>false</info> zurückgegeben.


id: readline_add_history
type: function
doc:
<comment>Description:</comment>
  Fügt eine Zeile zur History hinzu
  
  Diese Funktion fügt eine Zeile zur Kommandozeilen-History hinzu.

<comment>Param:</comment>
  <info>string</info>  <strong>$prompt</strong>  Die zur History hinzuzufügende Zeile.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: readline_callback_handler_install
type: function
doc:
<comment>Description:</comment>
  Initialisiert das readline-Callback-Interface und das Terminal,
     gibt den Prompt aus und springt direkt zurück
  
  Initialisiert ein readline-Callback-Interface, gibt danach den <strong>$prompt</strong> 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 <strong>stream_select()</strong> kombiniert werden, da dies
  eine Verschränkung von IO und Benutzereingaben wie mittels <strong>readline()</strong> ermöglicht.

<comment>Param:</comment>
  <info>string</info>    <strong>$prompt</strong>    Die Prompt-Message.
  <info>callable</info>  <strong>$callback</strong>  Die <strong>$callback</strong>-Funktion benötigt einen Parameter; die Benutzereingabe wird
                       zurückgegeben.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>readline_callback_handler_remove()</strong>
   * <strong>readline_callback_read_char()</strong>
   * <strong>stream_select()</strong>


id: readline_callback_handler_remove
type: function
doc:
<comment>Description:</comment>
  Entfernt den letztdefinierten Callbackhandler und setzt die
     Terminalumgebung auf die Ursprungswerte zurück
  
  Entfernt den letztdefinierten Callbackhandler und setzt die Terminalumgebung auf die
  Ursprungswerte zurück.

<comment>Return:</comment>
  <info>bool</info>  Gibt <info>true</info> zurück, wenn der letztdefinierte Callbackhandler zurückgesetzt wurde; falls dieser
        nicht gefunden wurde, wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>readline_callback_handler_install()</strong>
   * <strong>readline_callback_read_char()</strong>


id: readline_callback_read_char
type: function
doc:
<comment>Description:</comment>
  Liest ein Zeichen und informiert das readline-Callback-Interface, wenn die Eingabezeile
  abgeschlossen wurde
  
  Liest ein Zeichen der Benutzereingabe ein. Wenn eine Eingabezeile abgeschlossen ist, informiert
  diese Funktion das readline-Callback-Interface, das mittels <strong>readline_callback_handler_install()</strong>

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.

<comment>See Also:</comment>
   * <strong>readline_callback_handler_install()</strong>
   * <strong>readline_callback_handler_remove()</strong>


id: readline_clear_history
type: function
doc:
<comment>Description:</comment>
  Löscht die History
  
  Diese Funktion löscht die gesamte Kommandozeilen-History.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: readline_completion_function
type: function
doc:
<comment>Description:</comment>
  Registriert eine Vervollständigungsfunktion
  
  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.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  Sie müssen den Namen einer existierenden Funktion angeben, die einen Teil
                       einer Kommandozeile akzeptiert und ein Array möglicher Übereinstimmungen
                       zurückgibt.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: readline_info
type: function
doc:
<comment>Description:</comment>
  Liest/Setzt verschiedene interne readline-Variablen
  
  Liest/Setzt verschiedene interne readline-Variablen.

<comment>Param:</comment>
  <info>string|null</info>           <strong>$var_name</strong>  Ein Variablenname.
  <info>int|string|bool|null</info>  <strong>$value</strong>     Sofern unterstützt, entspricht der Parameter dem neuen gesetzten
                                   Wert.

<comment>Return:</comment>
  <info>mixed</info>  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: <return>done</return>, <return>end</return>, <return>erase_empty_line</return>, <return>library_version</return>, <return>line_buffer</return>, <return>mark</return>, <return>pending_input</return>,
         <return>point</return>, <return>prompt</return>, <return>readline_name</return> und <return>terminal_name</return>. Das Array enthält nur die Elemente, die von
         der Bibliothek unterstützt werden, mit der die Erweiterung readline erstellt wurde.
         
         Wird die Funktion mit einem oder zwei Parametern aufgerufen, wird der alte Wert
         zurückgegeben.


id: readline_list_history
type: function
doc:
<comment>Description:</comment>
  Auflistung der History
  
  Gibt die vollständige Kommandozeilen-History zurück.

<comment>Return:</comment>
  <info>array</info>  Diese Funktion gibt ein Array der gesamten Kommandozeilen-History zurück. Die Elemente sind
         numerisch indiziert, beginnend bei Null.


id: readline_on_new_line
type: function
doc:
<comment>Description:</comment>
  Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde
  
  Informiert readline, dass der Cursor in eine neue Zeile bewegt wurde.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: readline_read_history
type: function
doc:
<comment>Description:</comment>
  Liest die History
  
  Diese Funktion liest eine Kommandozeilen-History aus einer Datei.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Pfad zur Datei, die die Kommandozeilen-History enthält.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: readline_redisplay
type: function
doc:
<comment>Description:</comment>
  Zeichnet den Bildschirm neu
  
  Zeichnet die Eingabezeile neu um den Bildschirm neu aufzubauen.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: readline_write_history
type: function
doc:
<comment>Description:</comment>
  Schreibt die History
  
  Diese Funktion schreibt die Kommandozeilen-History in eine Datei.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Pfad zur Datei, in der gespeichert werden soll.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: readlink
type: function
doc:
<comment>Description:</comment>
  Liefert das Ziel eines symbolischen Links
  
  <strong>readlink()</strong> ist von der Funktionalität her identisch mit der C Funktion readlink.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  Der Pfad des symbolischen Links.

<comment>Return:</comment>
  <info>string|false</info>  Gibt den Inhalt des Pfades des symbolischen Links zurück oder <info>false</info> im Fehlerfall.
                
                Die Funktion schlägt fehl, wenn <strong>$path</strong> kein Symlink ist, außer unter Windows, wo der
                normalisierte Pfad zurückgegeben wird.

<comment>See Also:</comment>
   * <strong>is_link()</strong>
   * <strong>symlink()</strong>
   * <strong>linkinfo()</strong>


id: realpath
type: function
doc:
<comment>Description:</comment>
  Löst einen Pfad in einen absoluten und eindeutigen auf
  
  <strong>realpath()</strong> löst alle symbolischen Verweise, <return>/./</return>, <return>/../</return> und mehrere aufeinanderfolgende <return>/</return> Zeichen,
  die in <strong>$path</strong> enthalten sind, auf und gibt den so entstehenden absoluten Pfad zurück.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  Der Pfad, der aufgelöst werden soll.  Der Pfad muss angegeben werden, kann
                 allerdings auch ein leerer String sein, in diesem Fall wird dann das aktuelle
                 Verzeichnis benutzt.
                 
                 Der Pfad muss angegeben werden, kann allerdings auch ein leerer String sein, in
                 diesem Fall wird dann das aktuelle Verzeichnis benutzt.

<comment>Return:</comment>
  <info>string|false</info>  Gibt bei Erfolg den eindeutigen und absoluten Pfadnamen zurück. Dieser wird keine
                symbolischen Links, <return>/./</return> oder <return>/../</return> mehr enthalten. Abschließende Trennzeichen wie <return>\</return>
                und <return>/</return> werden ebenfalls entfernt.
                
                <strong>realpath()</strong> gibt <info>false</info> zurück, wenn ein Fehler auftritt,  beispielsweise wenn die
                Datei nicht existiert.
                
                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 <strong>realpath()</strong>
                <info>false</info> zurück.
                
                Bei Dateisystemen, bei denen Groß-/Kleinschreibung keine Rolle spielt, kann
                <strong>realpath()</strong> die Schreibweise kanonisieren, oder auch nicht.
                
                Die Funktion <strong>realpath()</strong> funktioniert nicht für Dateien in einem Phar, da solche
                Pfade virtuelle Pfade sind, aber keine realen Pfade.
                
                Unter Windows werden Junctions und symbolische Links zu Verzeichnissen nur um eine
                Ebene erweitert.
                
                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.

<comment>See Also:</comment>
   * <strong>basename()</strong>
   * <strong>dirname()</strong>
   * <strong>pathinfo()</strong>


id: realpath_cache_get
type: function
doc:
<comment>Description:</comment>
  Get realpath cache entries
  
  Get the contents of the realpath cache.

<comment>Return:</comment>
  <info>array</info>  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.

<comment>See Also:</comment>
   * <strong>realpath_cache_size()</strong>


id: realpath_cache_size
type: function
doc:
<comment>Description:</comment>
  Get realpath cache size
  
  Get the amount of memory used by the realpath cache.

<comment>Return:</comment>
  <info>int</info>  Returns how much memory realpath cache is using.

<comment>See Also:</comment>
   * <strong>realpath_cache_get()</strong>
   * 
     The realpath_cache_size
     configuration option
    


id: recode
type: function
doc:
<comment>Description:</comment>
  Alias von recode_string
  
  Diese Funktion ist ein Alias für:  <strong>recode_string()</strong>.


id: recode_file
type: function
doc:
<comment>Description:</comment>
  Umkodierung von Dateien entsprechend der Recode-Anweisung
  
  Umkodierung der Datei, die durch den Dateizeiger <strong>$input</strong> referenziert wird, in die Datei <strong>$output</strong>,
  entsprechend der Recode-Anweisung <strong>$request</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$request</strong>  Der gewünschte Recode-Requesttyp.
  <info>resource</info>  <strong>$input</strong>    Ein lokaler Dateizeiger vom Typ <info>resource</info> für den <strong>$input</strong>-Parameter.
  <info>resource</info>  <strong>$output</strong>   Ein lokaler Dateizeiger vom Typ <info>resource</info> für den <strong>$output</strong>-Parameter.

<comment>Return:</comment>
  <info>bool</info>  Gibt <info>false</info> zurück, wenn es nicht möglich ist, die Anweisung durchzuführen, andernfalls <info>true</info>.

<comment>See Also:</comment>
   * <strong>fopen()</strong>


id: recode_string
type: function
doc:
<comment>Description:</comment>
  Kodiert einen String entsprechend einer Recode-Anweisung um
  
  Der Parameter <strong>$string</strong> wird entsprechend der Recode-Anweisung <strong>$request</strong> umgewandelt.

<comment>Param:</comment>
  <info>string</info>  <strong>$request</strong>  Der gewünschte Recode-Anweisungstyp
  <info>string</info>  <strong>$string</strong>   Der umzukodierende <info>String</info>

<comment>Return:</comment>
  <info>string</info>  Gibt den umkodierten <info>String</info> zurück oder <info>false</info>, wenn es nicht möglich ist, die
          Recode-Anweisung auszuführen.

<comment>See Also:</comment>
   * 
     Detaillierte Anweisungen zur Gestaltung der Recode-Anfrage sind in der
     Dokumentation des installierten GNU Recode zu finden.
    
   * <strong>mb_convert_encoding()</strong>
   * UConverter::transcode
   * <strong>iconv()</strong>


id: register_shutdown_function
type: function
doc:
<comment>Description:</comment>
  Registriert eine Funktion zur Ausführung beim Skript-Abschluss
  
  Registriert ein <strong>$callback</strong>, welches ausgeführt werden soll, sobald die Ausführung des Skripts endet
  oder wenn <strong>exit()</strong> aufgerufen wird.
  
  <strong>register_shutdown_function()</strong> kann mehrmals hintereinander aufgerufen werden, und die Funktionen
  werden in derselben Reihenfolge aufgerufen, wie sie registriert wurden. Wenn <strong>exit()</strong> innerhalb
  einer registrierten Shutdown-Funktion aufgerufen wird, bricht die Ausführung vollständig ab und
  keine weiteren registrierten Shutdown-Funktionen werden ausgeführt.
  
  Shutdown-Funktionen können außerdem selbst <strong>register_shutdown_function()</strong> aufrufen, um eine
  Shutdown-Funktion am Ende der Warteschlange hinzuzufügen.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  Das Shutdown-Callback, welches registriert werden soll.
                       
                       Die Shutdown-Callbacks werden als Teil der Anfrage ausgeführt, d. h. es ist
                       möglich, Ausgaben zu senden und auf Ausgabepuffer zuzugreifen.
  <info>mixed</info>     <strong>$args</strong>      Hier können zusätzliche Parameter an die Shutdown-Funktion übergeben werden.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.

<comment>See Also:</comment>
   * auto_append_file
   * <strong>exit()</strong>
   * <strong>fastcgi_finish_request()</strong>
   * Den Abschnitt über Verbindungssteuerung


id: register_tick_function
type: function
doc:
<comment>Description:</comment>
  Register a function for execution on each tick
  
  Registers the given <strong>$callback</strong> to be executed when a tick is called.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The function to register.
  <info>mixed</info>     <strong>$args</strong>      

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * declare
   * <strong>unregister_tick_function()</strong>


id: rename
type: function
doc:
<comment>Description:</comment>
  Benennt eine Datei oder ein Verzeichnis um
  
  Versucht <strong>$from</strong> in <strong>$to</strong> umzubenennen, wobei bei Bedarf zwischen Verzeichnissen verschoben wird. Wird
  eine Datei umbenannt und <strong>$to</strong> exisitiert bereits, wird es überschrieben. Wird ein Verzeichnis
  umbenannt und <strong>$to</strong> exisitiert bereits, wird eine Warnung erzeugt.

<comment>Param:</comment>
  <info>string</info>         <strong>$from</strong>     Der alte Name.
                           
                           Der Wrapper, der in <strong>$from</strong> verwendet wird, muss mit dem Wrapper, der in
                           <strong>$to</strong> verwendet wird, übereinstimmen.
  <info>string</info>         <strong>$to</strong>       Der neue Name.  Wenn unter Windows <strong>$to</strong> bereits existiert, muss er
                           beschreibbar sein. Andernfalls schlägt <strong>rename()</strong> fehl und gibt ein
                           <info>E_WARNING</info> aus.
                           
                           Wenn unter Windows <strong>$to</strong> bereits existiert, muss er beschreibbar sein.
                           Andernfalls schlägt <strong>rename()</strong> fehl und gibt ein <info>E_WARNING</info> aus.
  <info>resource|null</info>  <strong>$context</strong>  Eine Stream-Kontext-<info>Ressource</info>.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>copy()</strong>
   * <strong>unlink()</strong>
   * <strong>move_uploaded_file()</strong>


id: reset
type: function
doc:
<comment>Description:</comment>
  Setzt den internen Zeiger eines Arrays auf sein erstes Element
  
  <strong>reset()</strong> setzt den internen Zeiger von <strong>$array</strong> auf das erste Element zurück und gibt den Wert des
  ersten Arrayelements zurück.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  Das Eingabe-Array.

<comment>Return:</comment>
  <info>mixed</info>  Gibt das erste Element des Arrays zurück oder <info>false</info> wenn das Array leer ist.
         
         Diese Funktion kann sowohl das
         boolsche <info>false</info> zurückliefern, als auch einen nicht-boolschen Wert, welcher zu <info>false</info>
         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.

<comment>See Also:</comment>
   * <strong>current()</strong>
   * <strong>each()</strong>
   * <strong>end()</strong>
   * <strong>next()</strong>
   * <strong>prev()</strong>
   * <strong>array_key_first()</strong>


id: restore_error_handler
type: function
doc:
<comment>Description:</comment>
  Stellt die zuvor benutzte Fehlerbehandlungsfunktion wieder her
    
  
  Diese Funktion wird benutzt, um eine mit <strong>set_error_handler()</strong> gesetzte Fehlerbehandlungsfunktion
  wieder zurückzusetzen und zur zuvor benutzten Fehlerbehandlung zurückzukehren (dies kann entweder
  eine eingebaute oder eine benutzerdefinierte Funktion sein).

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.

<comment>See Also:</comment>
   * <strong>error_reporting()</strong>
   * <strong>set_error_handler()</strong>
   * <strong>restore_exception_handler()</strong>
   * <strong>trigger_error()</strong>


id: restore_exception_handler
type: function
doc:
<comment>Description:</comment>
  Stellt den vorherigen Exceptionhandler wieder her
    
  
  Diese Funktion kann genutzt werden, um die Installation eines Exceptionhandlers mit
  <strong>set_exception_handler()</strong> rückgängig zu machen und den vorherigen Handler wieder in Kraft zu setzen
  (entweder den eingebauten oder eine andere benutzerdefinierte Funktion).

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.

<comment>See Also:</comment>
   * <strong>set_exception_handler()</strong>
   * <strong>set_error_handler()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>error_reporting()</strong>


id: restore_include_path
type: function
doc:
<comment>Description:</comment>
  Restores the value of the include_path configuration option
  
  Restores the include_path configuration option back to its original master value as set in php.ini

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.

<comment>See Also:</comment>
   * <strong>ini_restore()</strong>
   * <strong>get_include_path()</strong>
   * <strong>set_include_path()</strong>
   * <strong>include()</strong>


id: rewind
type: function
doc:
<comment>Description:</comment>
  Setzt die Position eines Dateizeigers auf den Anfang
  
  Setzt den Datei-Positions-Indikator für <strong>$stream</strong> an den Anfang des Dateistreams.
  
  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.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  Der Dateizeiger muss gültig sein und auf eine Datei zeigen, die zuvor
                     erfolgreich durch <strong>fopen()</strong> geöffnet wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>fread()</strong>
   * <strong>fseek()</strong>
   * <strong>ftell()</strong>
   * <strong>fwrite()</strong>


id: rewinddir
type: function
doc:
<comment>Description:</comment>
  Setzt das Verzeichnis-Handle an den Anfang zurück
  
  Setzt den mit <strong>$dir_handle</strong> angegebenen Verzeichnis-Stream auf den Anfang des Verzeichnisses zurück
  (Reset).

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  Die Verzeichnis-Handle-<info>Ressource</info>, die zuvor mit <strong>opendir()</strong> geöffnet
                              wurde. Wenn das Verzeichnis-Handle nicht angegeben ist, wird dasjenige
                              verwendet, das auf das zuletzt mittels <strong>opendir()</strong> geöffnete Verzeichnis
                              zeigt.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: rmdir
type: function
doc:
<comment>Description:</comment>
  Löscht ein Verzeichnis
  
  Versucht das durch <strong>$directory</strong> angegebene Verzeichnis zu löschen. Das Verzeichnis muss dafür leer
  sein und PHP muss die notwendigen Rechte besitzen. Ansonsten wird ein <info>E_WARNING</info> geworfen.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>  Pfad zum Verzeichnis.
  <info>resource|null</info>  <strong>$context</strong>    Eine Stream-Kontext-<info>Ressource</info>.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>is_dir()</strong>
   * <strong>mkdir()</strong>
   * <strong>unlink()</strong>


id: rnp_backend_string
type: function
doc:
<comment>Description:</comment>
  Return cryptographic backend library name

<comment>Return:</comment>
  <info>string</info>  Backend name string. Currently supported backends are "Botan" and "OpenSSL".


id: rnp_backend_version
type: function
doc:
<comment>Description:</comment>
  Return cryptographic backend library version

<comment>Return:</comment>
  <info>string</info>  Version string.


id: rnp_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypt PGP message
  
  Private keys used for decryption should be loaded into the FFI object before calling this
  function. If password encryption was used, then password provider should be set by calling
  <strong>rnp_ffi_set_pass_provider()</strong>.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$input</strong>  Encrypted message.

<comment>Return:</comment>
  <info>string|false</info>  Decrypted message on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_dump_packets
type: function
doc:
<comment>Description:</comment>
  Dump OpenPGP packets stream information in humand-readable format

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  Input string containing OpenPGP data, either in binary or ASCII-armored format.
  <info>int</info>     <strong>$flags</strong>  See <info>RNP_DUMP_*</info> predefined constants.

<comment>Return:</comment>
  <info>string|false</info>  Text describing packet sequenceBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_dump_packets_to_json
type: function
doc:
<comment>Description:</comment>
  Dump OpenPGP packets stream information to the JSON string

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  Input string containing OpenPGP data, either in binary or ASCII-armored format.
  <info>int</info>     <strong>$flags</strong>  See <info>RNP_JSON_DUMP_*</info> predefined constants.

<comment>Return:</comment>
  <info>string|false</info>  JSON string with dumpBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_ffi_create
type: function
doc:
<comment>Description:</comment>
  Create the top-level object used for interacting with the library

<comment>Param:</comment>
  <info>string</info>  <strong>$pub_format</strong>  the format of the public keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_*
                       constant.
  <info>string</info>  <strong>$sec_format</strong>  the format of the secret keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_*
                       constant

<comment>Return:</comment>
  <info>RnpFFI|false</info>  Returns <info>RnpFFI</info> object on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_ffi_destroy
type: function
doc:
<comment>Description:</comment>
  Destroy the top-level object used for interacting with the library

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>  Das von rnp_ffi_create zurückgegebene FFI-Objekt.

<comment>Return:</comment>
  <info>void</info>  


id: rnp_ffi_set_pass_provider
type: function
doc:
<comment>Description:</comment>
  Set password provider callback function
  
  Sets password provider function. This function can ask for the password on a standard input (if
  PHP script is executed in a command line environment), display GUI dialog or provide password in
  any other possible ways. Requested passwords are used to encrypt or decrypt secret keys or perform
  symmetric encryption/decryption operations.

<comment>Param:</comment>
  <info>RnpFFI</info>    <strong>$ffi</strong>                Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>callable</info>  <strong>$password_callback</strong>  The function that is to be called for every password request.  It
                                has the following signature:
                                <info>bool</info>password_callback<info>string</info><strong>$key_fp</strong><info>string</info><strong>$pgp_context</strong><info>string</info>password</strong>
                                <return>$key_fp</return> - The key fingerprint, if any. Can be empty.<return>$pgp_context</return> -
                                String describing why the key is being requested.<return>$password</return> -
                                Password string reference where provided password should be stored
                                to. Callback function should return <info>true</info> if password was
                                successfully setBei einem Fehler wird <info>false</info> zurückgegeben..

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_import_keys
type: function
doc:
<comment>Description:</comment>
  Import keys from PHP string to the keyring and receive JSON describing new/updated keys

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$input</strong>  OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII
                  armored.
  <info>int</info>     <strong>$flags</strong>  See <info>RNP_LOAD_SAVE_*</info> predefined constants.

<comment>Return:</comment>
  <info>string|false</info>  JSON string with information about new and updated keys on successBei einem Fehler
                wird <info>false</info> zurückgegeben..


id: rnp_import_signatures
type: function
doc:
<comment>Description:</comment>
  Import standalone signatures to the keyring and receive JSON describing updated keys

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$input</strong>  OpenPGP packets containing signatures to be imported. Can be either binary or
                  ASCII armored.
  <info>int</info>     <strong>$flags</strong>  Currently must be 0.

<comment>Return:</comment>
  <info>string|false</info>  JSON string with information about updated keys on successBei einem Fehler wird
                <info>false</info> zurückgegeben..


id: rnp_key_export
type: function
doc:
<comment>Description:</comment>
  Export a key

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$key_fp</strong>  Key fingerprint.
  <info>int</info>     <strong>$flags</strong>   See <info>RNP_KEY_EXPORT_*</info> predefined constants (except <info>RNP_KEY_EXPORT_BASE64</info>).

<comment>Return:</comment>
  <info>string|false</info>  OpenPGP packets of exported key (binary or ASCII-armored) on successBei einem Fehler
                wird <info>false</info> zurückgegeben..


id: rnp_key_export_autocrypt
type: function
doc:
<comment>Description:</comment>
  Export minimal key for autocrypt feature (just 5 packets: key, uid, signature,
     encryption subkey, signature)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>        Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$key_fp</strong>     Primary key fingerprint.
  <info>string</info>  <strong>$subkey_fp</strong>  Subkey to export. Can be an empty string to pick the first suitable subkey.
  <info>string</info>  <strong>$uid</strong>        User ID to export. Can be an empty string if exported key has only one uid.
  <info>int</info>     <strong>$flags</strong>      Only <info>RNP_KEY_EXPORT_BASE64</info> is currently supported. Enabling it would export
                      base64-encoded key data instead of binary.

<comment>Return:</comment>
  <info>string|false</info>  OpenPGP packets of exported key on successBei einem Fehler wird <info>false</info>
                zurückgegeben..


id: rnp_key_export_revocation
type: function
doc:
<comment>Description:</comment>
  Generate and export primary key revocation signature
  
  Note: to revoke a key you'll need to import this signature into the keystore or use
  <strong>rnp_key_revoke()</strong> function.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$key_fp</strong>   Key fingerprint of the primary key to be revoked.
  <info>int</info>     <strong>$flags</strong>    <info>RNP_KEY_EXPORT_ARMORED</info> or 0.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Exported revocation signature on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_key_get_info
type: function
doc:
<comment>Description:</comment>
  Get information about the key

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$key_fp</strong>  Key fingerprint.

<comment>Return:</comment>
  <info>array|false</info>  An associative array with information about the keyBei einem Fehler wird <info>false</info>
               zurückgegeben..


id: rnp_key_remove
type: function
doc:
<comment>Description:</comment>
  Remove a key from keyring(s)
  
  Note: you need to call <strong>rnp_save_keys()</strong> to write updated keyring(s) out.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$key_fp</strong>  Key fingerprint.
  <info>int</info>     <strong>$flags</strong>   See <info>RNP_KEY_REMOVE_*</info> constants. Flag <info>RNP_KEY_REMOVE_SUBKEYS</info> will work only for
                   the primary key and will remove all of its subkeys as well.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_key_revoke
type: function
doc:
<comment>Description:</comment>
  Revoke a key or subkey by generating and adding revocation signature
  
  Note: you need to call <strong>rnp_save_keys()</strong> to write updated keyring(s) out.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$key_fp</strong>   Key fingerprint.
  <info>int</info>     <strong>$flags</strong>    Currently must be 0.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_list_keys
type: function
doc:
<comment>Description:</comment>
  Enumerate all keys present in a keyring by specified identifer type

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>              Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$identifier_type</strong>  Key identifier type ("userid", "keyid", "grip", "fingerprint").

<comment>Return:</comment>
  <info>array|false</info>  An associative array where key is an identifier string and value is a PGP key
               fingerprintBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_load_keys
type: function
doc:
<comment>Description:</comment>
  Load keys from PHP string
  
  Note that for G10, the input must be a directory (which must already exist).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$format</strong>  Das Schlüsselformat der Daten (GPG, KBX, G10).
  <info>string</info>  <strong>$input</strong>   OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII
                   armored.
  <info>int</info>     <strong>$flags</strong>   Siehe die Beschreibung der RNP_LOAD_SAVE_*-Flags.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_load_keys_from_path
type: function
doc:
<comment>Description:</comment>
  Load keys from specified path
  
  Note that for G10, the input must be a directory (which must already exist).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>         Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$format</strong>      Das Schlüsselformat der Daten (GPG, KBX, G10).
  <info>string</info>  <strong>$input_path</strong>  file or directory containing the keys.
  <info>int</info>     <strong>$flags</strong>       Siehe die Beschreibung der RNP_LOAD_SAVE_*-Flags.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_locate_key
type: function
doc:
<comment>Description:</comment>
  Search for the key
  
  Note: only valid userids are checked while searching by userid.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>              Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$identifier_type</strong>  Identifier type string: "userid", "keyid", "fingerprint", "grip".
  <info>string</info>  <strong>$identifier</strong>       PGP User ID (name and email) for "userid" type, hexadecimal string that
                            represents key id, fingerprint or key grip correspondingly.

<comment>Return:</comment>
  <info>string|false</info>  Returns hexadecimal fingerprint of the key found on successBei einem Fehler wird
                <info>false</info> zurückgegeben..


id: rnp_op_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt message

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>                Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$message</strong>            Message to be encrypted.
  <info>array</info>   <strong>$recipient_keys_fp</strong>  Array with fingerprints of recipient's keys. At least one key must be
                              present.
  <info>array</info>   <strong>$options</strong>            An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Encrypted data on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_op_generate_key
type: function
doc:
<comment>Description:</comment>
  Generate key

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$userid</strong>   PGP User ID - text that is intended to represent the name and email address of
                    the key holder.
  <info>string</info>  <strong>$key_alg</strong>  Primary key algorithm (i.e. 'RSA', 'DSA', etc).
  <info>string</info>  <strong>$sub_alg</strong>  Subkey algorithm. If not set, subkey will not be generated.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Fingerprint of the generated primary keyBei einem Fehler wird <info>false</info> zurückgegeben..
                This fingerprint can be used later to reference the key in sign and encrypt
                operations. The key data is stored in FFI memory context and can be saved using
                <strong>rnp_save_keys()</strong> or <strong>rnp_save_keys_to_path()</strong>.


id: rnp_op_sign
type: function
doc:
<comment>Description:</comment>
  Perform signing operation on a binary data, return embedded signature(s)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$data</strong>     Data to be signed.
  <info>array</info>   <strong>$keys_fp</strong>  Array with key fingerprints. At least one key must be provided. Keys should be
                    present in <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Data with embedded signature(s) on successBei einem Fehler wird <info>false</info>
                zurückgegeben..


id: rnp_op_sign_cleartext
type: function
doc:
<comment>Description:</comment>
  Perform signing operation on a textual data, return cleartext signed message

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$data</strong>     Data to be signed.
  <info>array</info>   <strong>$keys_fp</strong>  Array with key fingerprints. At least one key must be provided. Keys should be
                    present in <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Cleartext signed message containing source data with additional headers and
                ASCII-armored signature on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_op_sign_detached
type: function
doc:
<comment>Description:</comment>
  Perform signing operation, return detached signature(s)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$data</strong>     Data to be signed.
  <info>array</info>   <strong>$keys_fp</strong>  Array with key fingerprints. At least one key must be provided. Keys should be
                    present in <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Detached signature(s) data on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_op_verify
type: function
doc:
<comment>Description:</comment>
  Verify embedded or cleartext signatures

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>   Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$data</strong>  Signed data.

<comment>Return:</comment>
  <info>array|false</info>  An associative array with information about verification resultsBei einem Fehler wird
               <info>false</info> zurückgegeben..
               
               "signatures" sub-array.


id: rnp_op_verify_detached
type: function
doc:
<comment>Description:</comment>
  Verify detached signatures

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>        Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$data</strong>       Source data.
  <info>string</info>  <strong>$signature</strong>  Detached signature data.

<comment>Return:</comment>
  <info>array|false</info>  An associative array with information about verification resultsBei einem Fehler wird
               <info>false</info> zurückgegeben..
               
               "signatures" sub-array.


id: rnp_save_keys
type: function
doc:
<comment>Description:</comment>
  Save keys to PHP string
  
  Note that for G10, the output must be a directory (which must already exist).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$format</strong>  Das Schlüsselformat der Daten (GPG, KBX, G10).
  <info>string</info>  <strong>$output</strong>  key packets will be saved to the string referenced by <strong>$output</strong>.
  <info>int</info>     <strong>$flags</strong>   Siehe die Beschreibung der RNP_LOAD_SAVE_*-Flags.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_save_keys_to_path
type: function
doc:
<comment>Description:</comment>
  Save keys to specified path
  
  Saves keys present in the FFI object (loaded or generated) to the specified file or directory.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>          Das von rnp_ffi_create zurückgegebene FFI-Objekt.
  <info>string</info>  <strong>$format</strong>       Das Schlüsselformat der Daten (GPG, KBX, G10).
  <info>string</info>  <strong>$output_path</strong>  File or directory path where keys should be saved to.
  <info>int</info>     <strong>$flags</strong>        Siehe die Beschreibung der RNP_LOAD_SAVE_*-Flags.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on successBei einem Fehler wird <info>false</info> zurückgegeben..


id: rnp_supported_features
type: function
doc:
<comment>Description:</comment>
  Get supported features in JSON format
  
  Get the JSON formatted string containing array of supported rnp feature values (algorithms,
  curves, etc) by type.

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  See RNP_FEATURE_* constants for supported values.

<comment>Return:</comment>
  <info>string|false</info>  String containing JSON formatted array of supported algorithms, curves, etcBei einem
                Fehler wird <info>false</info> zurückgegeben..


id: rnp_version_string
type: function
doc:
<comment>Description:</comment>
  RNP library version

<comment>Return:</comment>
  <info>string</info>  Returns RNP library version string.


id: rnp_version_string_full
type: function
doc:
<comment>Description:</comment>
  Full version string of RNP library

<comment>Return:</comment>
  <info>string</info>  Returns full version string of RNP library.


id: round
type: function
doc:
<comment>Description:</comment>
  Rundet einen Gleitkommawert
  
  Rundet den Parameter <strong>$num</strong> auf die mit <strong>$precision</strong> angegebene Anzahl von Nachkommastellen.
  <strong>$precision</strong> kann dabei auch Null (Vorgabewert) oder negativ sein. So wird bei einer Stellenzahl von
  -1 z. B. auf volle Zehner gerundet.

<comment>Param:</comment>
  <info>int|float</info>  <strong>$num</strong>        Der zu rundende Wert.
  <info>int</info>        <strong>$precision</strong>  Auf wie viele Nachkommastellen gerundet werden soll.
                         
                         Ist die Genauigkeit <strong>$precision</strong> positiv, wird <strong>$num</strong> auf <strong>$precision</strong>
                         signifikante Stellen nach dem Dezimalpunkt gerundet.
                         
                         Ist die Genauigkeit <strong>$precision</strong> negativ, wird <strong>$num</strong> auf <strong>$precision</strong>
                         signifikante Stellen vor dem Dezimalpunkt gerundet, d. h. auf das nächste
                         Vielfache von <return>pow(10, -precision)</return>, z. B. wird <strong>$num</strong> mit einer <strong>$precision</strong> von
                         -1 auf Zehner gerundet, mit einer <strong>$precision</strong> von -2 auf Hunderter usw.
  <info>int</info>        <strong>$mode</strong>       Eine der folgenden Konstanten kann verwendet werden, um den Rundungsmodus
                         festzulegen. KonstantenBeschreibung<info>PHP_ROUND_HALF_UP</info> Rundet <strong>$num</strong> auf halber
                         Strecke von Null weg, womit 1.5 zu 2 wird und -1.5 zu -2.
                         <info>PHP_ROUND_HALF_DOWN</info> Rundet <strong>$num</strong> auf halber Strecke zu Null hin, womit 1.5
                         zu 1 wird und -1.5 zu -1. <info>PHP_ROUND_HALF_EVEN</info> Rundet <strong>$num</strong> auf halber
                         Strecke auf den nächsten geraden Wert, womit sowohl 1.5 als auch 2.5 zu 2
                         werden. <info>PHP_ROUND_HALF_ODD</info> Rundet <strong>$num</strong> auf halber Strecke auf den nächsten
                         ungeraden Wert, womit 1.5 zu 1 wird und 2.5 zu 3.

<comment>Return:</comment>
  <info>float</info>  Der auf die angegebene <strong>$precision</strong> gerundete Wert als Float.

<comment>See Also:</comment>
   * <strong>ceil()</strong>
   * <strong>floor()</strong>
   * <strong>number_format()</strong>


id: rpmaddtag
type: function
doc:
<comment>Description:</comment>
  Add tag retrieved in query
  
  Add an additional retrieved tag in subsequent queries.

<comment>Param:</comment>
  <info>int</info>  <strong>$tag</strong>  One of RPMTAG_* constant, see the rpminfo constants page.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>rpminfo()</strong>
   * <strong>rpmdbinfo()</strong>
   * <strong>rpmdbsearch()</strong>


id: rpmdbinfo
type: function
doc:
<comment>Description:</comment>
  Get information from installed RPM
  
  Retrieve information about an installed package, from the system RPM database.

<comment>Param:</comment>
  <info>string</info>  <strong>$nevr</strong>  Name with optional epoch, version and release.
  <info>bool</info>    <strong>$full</strong>  If <info>true</info> all information headers for the file are retrieved, else only a minimal
                 set.

<comment>Return:</comment>
  <info>array|null</info>  An <info>array</info> of <info>array</info> of information or NULL on error.

<comment>See Also:</comment>
   * <strong>rpmaddtag()</strong>


id: rpmdbsearch
type: function
doc:
<comment>Description:</comment>
  Search RPM packages
  
  Search packages in the system RPM database.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  Value to search for.
  <info>int</info>     <strong>$rpmtag</strong>   Search criterion, one of RPMTAG_* constant, see the rpminfo constants page.
  <info>int</info>     <strong>$rpmmire</strong>  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.
  <info>bool</info>    <strong>$full</strong>     If <info>true</info> all information headers for the file are retrieved, else only a minimal
                    set.

<comment>Return:</comment>
  <info>array|null</info>  An <info>array</info> of <info>array</info> of information or NULL on error.

<comment>See Also:</comment>
   * <strong>rpmaddtag()</strong>


id: rpmgetsymlink
type: function
doc:
<comment>Description:</comment>
  Get target of a symlink
  
  Get target of a symlink.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  Path of the RPM file.
  <info>string</info>  <strong>$name</strong>  Name of the symlink file.

<comment>Return:</comment>
  <info>string|null</info>  A <info>string</info> with target of the symlink, NULL on error, or an empty string if not a
               symlink.


id: rpminfo
type: function
doc:
<comment>Description:</comment>
  Get information from a RPM file
  
  Retrieve information about a local file, a RPM package.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   Path of the RPM file.
  <info>bool</info>    <strong>$full</strong>   If <info>true</info> all information headers for the file are retrieved, else only a minimal
                  set.
  <info>string</info>  <strong>$error</strong>  If provided, will receive the possible error message, and will avoid a runtime
                  warning.

<comment>Return:</comment>
  <info>array|null</info>  An <info>array</info> of information or NULL on error.

<comment>See Also:</comment>
   * <strong>rpmaddtag()</strong>


id: rpmvercmp
type: function
doc:
<comment>Description:</comment>
  RPM version comparison
  
  Compare 2 RPM versions.

<comment>Param:</comment>
  <info>string</info>       <strong>$evr1</strong>      First epoch:version-release string
  <info>string</info>       <strong>$evr2</strong>      Second epoch:version-release string
  <info>string|null</info>  <strong>$operator</strong>  An optional operator. The possible operators are: <return>\<</return>, <return>lt</return>, <return>\<=</return>, <return>le</return>, <return>&gt;</return>, <return>gt</return>, <return>&gt;=</return>, <return>ge</return>, <return>==</return>, <return>=</return>, <return>eq</return>, <return>!=</return>, <return>\<&gt;</return>, <return>ne</return> respectively.
                          
                          This parameter is case-sensitive, values should be lowercase.

<comment>Return:</comment>
  <info>int|bool</info>  Returns
            \< 0 if evr1 is less than evr2, &gt; 0 if evr1 is greater than evr2, and 0 if they are equal.
            
            When using the optional <strong>$operator</strong> argument, the function will return <info>true</info> if the
            relationship is the one specified by the operator, <info>false</info> otherwise.


id: rrd_create
type: function
doc:
<comment>Description:</comment>
  Creates rrd database file
  
  Creates the rdd database file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Filename for newly created rrd file.
  <info>array</info>   <strong>$options</strong>   Options for rrd create - list of strings. See man page of rrd create for whole
                     list of options.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: rrd_error
type: function
doc:
<comment>Description:</comment>
  Gets latest error message
  
  Returns latest global rrd error message.

<comment>Return:</comment>
  <info>string</info>  Latest error message.


id: rrd_fetch
type: function
doc:
<comment>Description:</comment>
  Fetch the data for graph as array
  
  Gets data for graph output from RRD database file as array. This function has same result as
  <strong>rrd_graph()</strong>,  but fetched data are returned as array, no image file is created.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name.
  <info>array</info>   <strong>$options</strong>   Array of options for resolution specification.

<comment>Return:</comment>
  <info>array</info>  Returns information about retrieved graph data.


id: rrd_first
type: function
doc:
<comment>Description:</comment>
  Gets the timestamp of the first sample from rrd file
  
  Returns the first data sample from the specified RRA of the RRD file.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>      RRD database file name.
  <info>int</info>     <strong>$raaindex</strong>  The index number of the RRA that is to be examined. Default value is 0.

<comment>Return:</comment>
  <info>int</info>  Integer number of unix timestamp,Bei einem Fehler wird <info>false</info> zurückgegeben..


id: rrd_graph
type: function
doc:
<comment>Description:</comment>
  Creates image from a data
  
  Creates image for a particular data from RRD file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename to output the graph to. This will generally end in either <return>.png</return>,
                     <return>.svg</return> or <return>.eps</return>, depending on the format you want to output.
  <info>array</info>   <strong>$options</strong>   Options for generating image. See man page of rrd graph for all possible
                     options. All options (data definitions, variable definitions, etc.) are
                     allowed.

<comment>Return:</comment>
  <info>array</info>  Array with information about generated image is returned,Bei einem Fehler wird <info>false</info>
         zurückgegeben..


id: rrd_info
type: function
doc:
<comment>Description:</comment>
  Gets information about rrd file
  
  Returns information about particular RRD database file.

<comment>Param:</comment>
  <info></info>  <strong>$file</strong>  RRD database file name.

<comment>Return:</comment>
  <info>array</info>  Array with information about requested RRD file,Bei einem Fehler wird <info>false</info> zurückgegeben..


id: rrd_last
type: function
doc:
<comment>Description:</comment>
  Gets unix timestamp of the last sample
  
  Returns the UNIX timestamp of the most recent update of the RRD database.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name.

<comment>Return:</comment>
  <info>int</info>  Integer as unix timestamp of the most recent data from the RRD database.


id: rrd_lastupdate
type: function
doc:
<comment>Description:</comment>
  Gets information about last updated data
  
  Gets array of the UNIX timestamp and the values stored for each date in the most recent update of
  the RRD database file.

<comment>Param:</comment>
  <info></info>  <strong>$file</strong>  RRD database file name.

<comment>Return:</comment>
  <info>array</info>  Array of information about last update,Bei einem Fehler wird <info>false</info> zurückgegeben..


id: rrd_restore
type: function
doc:
<comment>Description:</comment>
  Restores the RRD file from XML dump
  
  Restores the RRD file from the XML dump.

<comment>Param:</comment>
  <info>string</info>  <strong>$xml_file</strong>  XML filename with the dump of the original RRD database file.
  <info>string</info>  <strong>$rrd_file</strong>  Restored RRD database file name.
  <info>array</info>   <strong>$options</strong>   Array of options for restoring. See man page for rrd restore.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: rrd_tune
type: function
doc:
<comment>Description:</comment>
  Tunes some RRD database file header options
  
  Change some options in the RRD dabase header file. E.g. renames the source for the data etc.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name.
  <info>array</info>   <strong>$options</strong>   Options with RRD database file properties which will be changed. See rrd tune
                     man page for details.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: rrd_update
type: function
doc:
<comment>Description:</comment>
  Updates the RRD database
  
  Updates the RRD database file. The input data is time interpolated according to the properties of
  the RRD database file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name. This database will be updated.
  <info>array</info>   <strong>$options</strong>   Options for updating the RRD database. This is list of strings. See man page of
                     rrd update for whole list of options.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: rrd_version
type: function
doc:
<comment>Description:</comment>
  Gets information about underlying rrdtool library
  
  Returns information about underlying rrdtool library.

<comment>Return:</comment>
  <info>string</info>  String with rrdtool version number e.g. "1.4.3".


id: rrd_xport
type: function
doc:
<comment>Description:</comment>
  Exports the information about RRD database
  
  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.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  Array of options for the export, see rrd xport man page.

<comment>Return:</comment>
  <info>array</info>  Array with information about RRD database file,Bei einem Fehler wird <info>false</info> zurückgegeben..


id: rrdc_disconnect
type: function
doc:
<comment>Description:</comment>
  Close any outstanding connection to rrd caching daemon
  
  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.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: rsort
type: function
doc:
<comment>Description:</comment>
  Sortiert ein Array in absteigender Reihenfolge
  
  Sortiert <strong>$array</strong> nach Werten in absteigender Reihenfolge.
  
  Wenn zwei Mitglieder als identisch verglichen werden, behalten sie ihre ursprüngliche Reihenfolge
  bei. Vor PHP 8.0.0 war die relative Sortierung im sortierten Array nicht definiert.
  
  Diese Funktion weist den
  Elementen des Arrays <strong>$array</strong> neue Schlüssel zu.
  Bestehende Schlüssel, die bereits zugewiesen wurden, werden entfernt
  statt einfach nur die Schlüssel neu anzuordnen
  
  Setzt den internen Zeiger des Arrays auf das erste Element zurück.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  Das Eingabe-Array.
  <info>int</info>    <strong>$flags</strong>  Der optionale zweite Parameter <strong>$flags</strong> kann mit folgenden Werten genutzt werden, um
                 das Sortierverhalten zu ändern:
                 
                 Flags für den Sortiertyp: <info>SORT_REGULAR</info> - vergleicht Elemente normal; die Details
                 werden im Abschnitt Vergleichsoperatoren beschrieben. <info>SORT_NUMERIC</info> - vergleicht
                 Elemente numerisch. <info>SORT_STRING</info> - vergleicht Elemente als Zeichenketten.
                 <info>SORT_LOCALE_STRING</info> - vergleicht Elemente als Zeichenketten, basierend auf dem
                 aktuellen Gebietsschema. Es wird das Gebietsschema verwendet, das mit <strong>setlocale()</strong>
                 geändert werden kann. <info>SORT_NATURAL</info> - vergleicht Elemente als Zeichenketten wie
                 <strong>natsort()</strong> mit "natürlicher Ordnung". <info>SORT_FLAG_CASE</info> - kann kombiniert werden
                 (bitweise ODER) mit <info>SORT_STRING</info> oder <info>SORT_NATURAL</info>, um Zeichenketten unter
                 Berücksichtigung der Groß- und Kleinschreibung zu sortieren.
                 
                 <info>SORT_REGULAR</info> - vergleicht Elemente normal; die Details werden im Abschnitt
                 Vergleichsoperatoren beschrieben.
                 
                 <info>SORT_NUMERIC</info> - vergleicht Elemente numerisch.
                 
                 <info>SORT_STRING</info> - vergleicht Elemente als Zeichenketten.
                 
                 <info>SORT_LOCALE_STRING</info> - vergleicht Elemente als Zeichenketten, basierend auf dem
                 aktuellen Gebietsschema. Es wird das Gebietsschema verwendet, das mit <strong>setlocale()</strong>
                 geändert werden kann.
                 
                 <info>SORT_NATURAL</info> - vergleicht Elemente als Zeichenketten wie <strong>natsort()</strong> mit "natürlicher
                 Ordnung".
                 
                 <info>SORT_FLAG_CASE</info> - kann kombiniert werden (bitweise ODER) mit <info>SORT_STRING</info> oder
                 <info>SORT_NATURAL</info>, um Zeichenketten unter Berücksichtigung der Groß- und Kleinschreibung
                 zu sortieren.

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.

<comment>See Also:</comment>
   * <strong>sort()</strong>
   * <strong>arsort()</strong>
   * <strong>krsort()</strong>
   * Den Vergleich von Arraysortierungsfunktionen


id: rtrim
type: function
doc:
<comment>Description:</comment>
  Entfernt Leerraum (oder andere Zeichen) vom Ende eines Strings
  
  Diese Funktion gibt den String <strong>$string</strong> zurück, von dessen Ende alle Whitespaces (oder andere
  Zeichen) entfernt wurden.
  
  Ohne den zweiten Parameter entfernt <strong>rtrim()</strong> diese Zeichen:   " " (ASCII <return>32</return> (<return>0x20</return>)), ein einfaches
  Leerzeichen.  "\t" (ASCII <return>9</return> (<return>0x09</return>)), ein Tabulator.  "\n" (ASCII <return>10</return> (<return>0x0A</return>)), ein Zeilenvorschub
  (line feed).  "\r" (ASCII <return>13</return> (<return>0x0D</return>)), ein Wagenrücklauf-Zeichen (carriage return).  "\0" (ASCII <return>0</return>
  (<return>0x00</return>)), das <return>NULL</return>-Byte.  "\v" (ASCII <return>11</return> (<return>0x0B</return>)), ein vertikaler Tabulator.
  
  " " (ASCII <return>32</return> (<return>0x20</return>)), ein einfaches Leerzeichen.
  
  "\t" (ASCII <return>9</return> (<return>0x09</return>)), ein Tabulator.
  
  "\n" (ASCII <return>10</return> (<return>0x0A</return>)), ein Zeilenvorschub (line feed).
  
  "\r" (ASCII <return>13</return> (<return>0x0D</return>)), ein Wagenrücklauf-Zeichen (carriage return).
  
  "\0" (ASCII <return>0</return> (<return>0x00</return>)), das <return>NULL</return>-Byte.
  
  "\v" (ASCII <return>11</return> (<return>0x0B</return>)), ein vertikaler Tabulator.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      Die Eingabezeichenkette.
  <info>string</info>  <strong>$characters</strong>  Sie können mittels des <strong>$characters</strong>-Parameters eigene Zeichen angeben, die Sie
                       entfernen lassen möchten. Führen Sie einfach alle zu löschenden Zeichen auf.
                       Mittels <return>..</return> können Sie einen Bereich von Zeichen benennen.

<comment>Return:</comment>
  <info>string</info>  Gibt die modifizierte Zeichenkette zurück.

<comment>See Also:</comment>
   * <strong>trim()</strong>
   * <strong>ltrim()</strong>


id: runkit7_constant_add
type: function
doc:
<comment>Description:</comment>
  Similar to define(), but allows defining in class definitions as well

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>  Name of constant to declare.  Either a string to indicate a global
                          constant, or <return>classname::constname</return> to indicate a class constant.
  <info>mixed</info>   <strong>$value</strong>          NULL, Bool, Long, Double, String, Array, or Resource value to store in the
                          new constant.
  <info>int</info>     <strong>$newVisibility</strong>  Visibility of the constant, for class constants. Public by default. One of
                          the <info>RUNKIT7_ACC_*</info> constants.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>define()</strong>
   * <strong>runkit7_constant_redefine()</strong>
   * <strong>runkit7_constant_remove()</strong>


id: runkit7_constant_redefine
type: function
doc:
<comment>Description:</comment>
  Redefine an already defined constant

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>   Constant to redefine.  Either the name of a global constant, or
                           <return>classname::constname</return> indicating class constant.
  <info>mixed</info>   <strong>$value</strong>           Value to assign to the constant.
  <info>int</info>     <strong>$new_visibility</strong>  The new visibility of the constant, for class constants. Unchanged by
                           default. One of the <info>RUNKIT7_ACC_*</info> constants.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_constant_add()</strong>
   * <strong>runkit7_constant_remove()</strong>


id: runkit7_constant_remove
type: function
doc:
<comment>Description:</comment>
  Remove/Delete an already defined constant

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>  Name of the constant to remove.  Either the name of a global constant, or
                          <return>classname::constname</return> indicating a class constant.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>define()</strong>
   * <strong>runkit7_constant_add()</strong>
   * <strong>runkit7_constant_redefine()</strong>


id: runkit7_function_add
type: function
doc:
<comment>Description:</comment>
  Add a new function, similar to create_function

<comment>Param:</comment>
  <info>string</info>   <strong>$function_name</strong>        Name of the function to be created
  <info>string</info>   <strong>$argument_list</strong>        Comma separated argument list
  <info>string</info>   <strong>$code</strong>                 Code making up the function
  <info>Closure</info>  <strong>$closure</strong>              A <class>closure</class> that defines the function.
  <info>bool</info>     <strong>$return_by_reference</strong>  Whether the function should return by reference.
  <info>string</info>   <strong>$doc_comment</strong>          The doc comment of the function.
  <info>string</info>   <strong>$return_type</strong>          The return type of the function.
  <info>bool</info>     <strong>$is_strict</strong>            Whether the function should behave as if it were declared in a file
                                 with <return>strict_types=1</return>

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>create_function()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_rename()</strong>
   * <strong>runkit7_function_remove()</strong>
   * <strong>runkit7_method_add()</strong>


id: runkit7_function_copy
type: function
doc:
<comment>Description:</comment>
  Copy a function to a new function name

<comment>Param:</comment>
  <info>string</info>  <strong>$source_name</strong>  Name of the existing function
  <info>string</info>  <strong>$target_name</strong>  Name of the new function to copy the definition to

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_rename()</strong>
   * <strong>runkit7_function_remove()</strong>


id: runkit7_function_redefine
type: function
doc:
<comment>Description:</comment>
  Replace a function definition with a new implementation
    
  
  Normalerweise können
  nur benutzerdefinierte Funktionen gelöscht, umbenannt oder modifiziert werden.
  Wenn Sie auch interne Funktionen übersteuern wollen, müssen Sie
  <return>runkit.internal_override</return> in Ihrer php.ini
  aktivieren.

<comment>Param:</comment>
  <info>string</info>   <strong>$function_name</strong>        Name of function to redefine
  <info>string</info>   <strong>$argument_list</strong>        New list of arguments to be accepted by function
  <info>string</info>   <strong>$code</strong>                 New code implementation
  <info>Closure</info>  <strong>$closure</strong>              A <class>closure</class> that defines the function.
  <info>bool</info>     <strong>$return_by_reference</strong>  Whether the function should return by reference.
  <info>string</info>   <strong>$doc_comment</strong>          The doc comment of the function.
  <info>string</info>   <strong>$return_type</strong>          The return type of the function.
  <info>bool</info>     <strong>$is_strict</strong>            Whether the function behaves as if it was declared in a file with
                                 <return>strict_types=1</return>

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_rename()</strong>
   * <strong>runkit7_function_remove()</strong>
   * <strong>runkit7_method_redefine()</strong>


id: runkit7_function_remove
type: function
doc:
<comment>Description:</comment>
  Remove a function definition
    
  
  Normalerweise können
  nur benutzerdefinierte Funktionen gelöscht, umbenannt oder modifiziert werden.
  Wenn Sie auch interne Funktionen übersteuern wollen, müssen Sie
  <return>runkit.internal_override</return> in Ihrer php.ini
  aktivieren.

<comment>Param:</comment>
  <info>string</info>  <strong>$function_name</strong>  Name of the function to be deleted

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_rename()</strong>


id: runkit7_function_rename
type: function
doc:
<comment>Description:</comment>
  Change a function's name
    
  
  Normalerweise können
  nur benutzerdefinierte Funktionen gelöscht, umbenannt oder modifiziert werden.
  Wenn Sie auch interne Funktionen übersteuern wollen, müssen Sie
  <return>runkit.internal_override</return> in Ihrer php.ini
  aktivieren.

<comment>Param:</comment>
  <info>string</info>  <strong>$source_name</strong>  Current function name
  <info>string</info>  <strong>$target_name</strong>  New function name

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_remove()</strong>


id: runkit7_import
type: function
doc:
<comment>Description:</comment>
  Process a PHP file importing function and class definitions, overwriting where appropriate
    
  
  Similar to <strong>include()</strong>. However, any code residing outside of a function or class is simply ignored.
  Additionally, depending on the value of <strong>$flags</strong>, any functions or classes which already exist in
  the currently running environment may be automatically overwritten by their new definitions.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Filename to import function and class definitions from
  <info>int</info>     <strong>$flags</strong>     Bitwise OR of the <return>RUNKIT7_IMPORT_*</return> family of constants.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: runkit7_method_add
type: function
doc:
<comment>Description:</comment>
  Dynamically adds a new method to a given class

<comment>Param:</comment>
  <info>string</info>   <strong>$class_name</strong>     The class to which this method will be added
  <info>string</info>   <strong>$method_name</strong>    The name of the method to add
  <info>string</info>   <strong>$argument_list</strong>  Comma-delimited list of arguments for the newly-created method
  <info>string</info>   <strong>$code</strong>           The code to be evaluated when <strong>$method_name</strong> is called
  <info>Closure</info>  <strong>$closure</strong>        A <class>closure</class> that defines the method.
  <info>int</info>      <strong>$flags</strong>          The type of method to create, can be <info>RUNKIT7_ACC_PUBLIC</info>,
                           <info>RUNKIT7_ACC_PROTECTED</info> or <info>RUNKIT7_ACC_PRIVATE</info> optionally combined via
                           bitwise OR with <info>RUNKIT7_ACC_STATIC</info>
  <info>string</info>   <strong>$doc_comment</strong>    The doc comment of the method.
  <info>string</info>   <strong>$return_type</strong>    The return type of the method.
  <info>bool</info>     <strong>$is_strict</strong>      Whether the method behaves as if it were declared in a file with
                           <return>strict_types=1</return>

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_add()</strong>


id: runkit7_method_copy
type: function
doc:
<comment>Description:</comment>
  Copies a method from class to another

<comment>Param:</comment>
  <info>string</info>  <strong>$destination_class</strong>        Destination class for copied method
  <info>string</info>  <strong>$destination_method_name</strong>  Destination method name
  <info>string</info>  <strong>$source_class</strong>             Source class of the method to copy
  <info>string</info>  <strong>$source_method_name</strong>       Name of the method to copy from the source class. If this
                                    parameter is omitted, the value of <strong>$destination_method_name</strong> is
                                    assumed.

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_copy()</strong>


id: runkit7_method_redefine
type: function
doc:
<comment>Description:</comment>
  Dynamically changes the code of the given method

<comment>Param:</comment>
  <info>string</info>   <strong>$class_name</strong>     The class in which to redefine the method
  <info>string</info>   <strong>$method_name</strong>    The name of the method to redefine
  <info>string</info>   <strong>$argument_list</strong>  Comma-delimited list of arguments for the redefined method
  <info>string</info>   <strong>$code</strong>           The new code to be evaluated when <strong>$method_name</strong> is called
  <info>Closure</info>  <strong>$closure</strong>        A <class>closure</class> that defines the method.
  <info>int</info>      <strong>$flags</strong>          The redefined method can be <info>RUNKIT7_ACC_PUBLIC</info>, <info>RUNKIT7_ACC_PROTECTED</info> or
                           <info>RUNKIT7_ACC_PRIVATE</info> optionally combined via bitwise OR with
                           <info>RUNKIT7_ACC_STATIC</info>
  <info>string</info>   <strong>$doc_comment</strong>    The doc comment of the method.
  <info>string</info>   <strong>$return_type</strong>    The return type of the method.
  <info>bool</info>     <strong>$is_strict</strong>      Whether the method behaves as if it was declared in a file with
                           <return>strict_types=1</return>.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_redefine()</strong>


id: runkit7_method_remove
type: function
doc:
<comment>Description:</comment>
  Dynamically removes the given method
  
  Diese Funktion kann nicht
  genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu
  manipulieren.

<comment>Param:</comment>
  <info>string</info>  <strong>$class_name</strong>   The class in which to remove the method
  <info>string</info>  <strong>$method_name</strong>  The name of the method to remove

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_remove()</strong>


id: runkit7_method_rename
type: function
doc:
<comment>Description:</comment>
  Dynamically changes the name of the given method
  
  Diese Funktion kann nicht
  genutzt werden, um die aktuell ausgeführte (oder verkette) Methode zu
  manipulieren.

<comment>Param:</comment>
  <info>string</info>  <strong>$class_name</strong>          The class in which to rename the method
  <info>string</info>  <strong>$source_method_name</strong>  The name of the method to rename
  <info>string</info>  <strong>$target_method_name</strong>  The new name to give to the renamed method

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_function_rename()</strong>


id: runkit7_object_id
type: function
doc:
<comment>Description:</comment>
  Return the integer object handle for given object
    
  
  This function is equivalent to <strong>spl_object_id()</strong>.
  
  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 <strong>spl_object_hash()</strong>.

<comment>Param:</comment>
  <info>object</info>  <strong>$obj</strong>  Any object.

<comment>Return:</comment>
  <info>int</info>  An integer identifier that is unique for each currently existing object and is always the
       same for each object.

<comment>See Also:</comment>
   * <strong>spl_object_id()</strong>


id: runkit7_superglobals
type: function
doc:
<comment>Description:</comment>
  Return numerically indexed array of registered superglobals

<comment>Return:</comment>
  <info>array</info>  Returns a numerically indexed array of the currently registered superglobals. i.e. _GET,
         _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

<comment>See Also:</comment>
   * Variable Scope


id: runkit7_zval_inspect
type: function
doc:
<comment>Description:</comment>
  Returns information about the passed in value with data types, reference counts, etc

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>  The value to return the representation of

<comment>Return:</comment>
  <info>array</info>  The array returned by this function contains the following elements: <return>address</return><return>refcount</return>
         (optional)<return>is_ref</return> (optional)<return>type</return>

<comment>See Also:</comment>
   * References Explained
   * References Explained (by Derick Rethans)


id: sapi_windows_cp_conv
type: function
doc:
<comment>Description:</comment>
  Convert string from one codepage to another
  
  Convert string from one codepage to another.

<comment>Param:</comment>
  <info>int|string</info>  <strong>$in_codepage</strong>   The codepage of the <strong>$subject</strong> string. Either the codepage name or
                             identifier.
  <info>int|string</info>  <strong>$out_codepage</strong>  The codepage to convert the <strong>$subject</strong> string to. Either the codepage
                             name or identifier.
  <info>string</info>      <strong>$subject</strong>       The string to convert.

<comment>Return:</comment>
  <info>string|null</info>  The <strong>$subject</strong> string converted to <strong>$out_codepage</strong>, or <info>null</info> on failure.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_get()</strong>
   * <strong>iconv()</strong>


id: sapi_windows_cp_get
type: function
doc:
<comment>Description:</comment>
  Get current codepage
  
  Gets the current codepage.

<comment>Param:</comment>
  <info>string</info>  <strong>$kind</strong>  The kind of operating system codepage to get, either <return>'ansi'</return> or <return>'oem'</return>. Any other
                 value refers to the current codepage of the process.

<comment>Return:</comment>
  <info>int</info>  If <strong>$kind</strong> is <return>'ansi'</return>, the current ANSI code page of the operating system is returned. If <strong>$kind</strong>
       is <return>'oem'</return>, the current OEM code page of the operating system is returned. Otherwise, the
       current codepage of the process is returned.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_set()</strong>


id: sapi_windows_cp_is_utf8
type: function
doc:
<comment>Description:</comment>
  Indicates whether the codepage is UTF-8 compatible
  
  Indicates whether the codepage of the current process is UTF-8 compatible.

<comment>Return:</comment>
  <info>bool</info>  Returns whether the codepage of the current process is UTF-8 compatible.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_get()</strong>


id: sapi_windows_cp_set
type: function
doc:
<comment>Description:</comment>
  Set process codepage
  
  Set the codepage of the current process.

<comment>Param:</comment>
  <info>int</info>  <strong>$codepage</strong>  A codepage identifier.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_get()</strong>


id: sapi_windows_generate_ctrl_event
type: function
doc:
<comment>Description:</comment>
  Send a CTRL event to another process
  
  Sends a CTRL event to another process in the same process group.

<comment>Param:</comment>
  <info>int</info>  <strong>$event</strong>  The <return>CTRL</return> event to send; either <info>PHP_WINDOWS_EVENT_CTRL_C</info> or
               <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>int</info>  <strong>$pid</strong>    The ID of the process to which to send the event to. If <return>0</return> is given, the event is sent
               to all processes of the process group.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>proc_open()</strong>
   * <strong>sapi_windows_set_ctrl_handler()</strong>


id: sapi_windows_set_ctrl_handler
type: function
doc:
<comment>Description:</comment>
  Set or remove a CTRL event handler
  
  Sets or removes a <return>CTRL</return> event handler, which allows Windows CLI processes to intercept or ignore
  <return>CTRL+C</return> and <return>CTRL+BREAK</return> events. Note that in multithreaded environments, this is only possible when
  called from the main thread.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$handler</strong>  A callback function to set or remove. If set, this function will be
                           called whenever a <return>CTRL+C</return> or <return>CTRL+BREAK</return> event occurs. The function is
                           supposed to have the following signature: <info>void</info>handler<info>int</info><strong>$event</strong> <strong>$event</strong> The
                           <return>CTRL</return> event which has been received; either <info>PHP_WINDOWS_EVENT_CTRL_C</info> or
                           <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.  Setting a <info>null</info> <strong>$handler</strong> causes the process
                           to ignore <return>CTRL+C</return> events, but not <return>CTRL+BREAK</return> events.
                           
                           The <return>CTRL</return> event which has been received; either <info>PHP_WINDOWS_EVENT_CTRL_C</info>
                           or <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>int</info>            <strong>$event</strong>    The <return>CTRL</return> event which has been received; either <info>PHP_WINDOWS_EVENT_CTRL_C</info>
                           or <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>bool</info>           <strong>$add</strong>      If <info>true</info>, the handler is set. If <info>false</info>, the handler is removed.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>sapi_windows_generate_ctrl_event()</strong>


id: sapi_windows_vt100_support
type: function
doc:
<comment>Description:</comment>
  Get or set VT100 support for the specified stream associated to an output buffer of a Windows
  console.
  
  If <strong>$enable</strong> is <info>null</info>, the function returns <info>true</info> if the stream <strong>$stream</strong> has VT100 control codes
  enabled, <info>false</info> otherwise.
  
  If <strong>$enable</strong> is a <info>bool</info>, the function will try to enable or disable the VT100 features of the stream
  <strong>$stream</strong>. If the feature has been successfully enabled (or disabled), the function will return
  <info>true</info>, or <info>false</info> otherwise.
  
  At startup, PHP tries to enable the VT100 feature of the <info>STDOUT</info>/<info>STDERR</info> 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.
  
  This function uses the <info>ENABLE_VIRTUAL_TERMINAL_PROCESSING</info> flag implemented in the Windows 10 API,
  so the VT100 feature may not be available on older Windows versions.

<comment>Param:</comment>
  <info>resource</info>   <strong>$stream</strong>  The stream on which the function will operate.
  <info>bool|null</info>  <strong>$enable</strong>  If <info>bool</info>, the VT100 feature will be enabled (if <info>true</info>) or disabled (if <info>false</info>).

<comment>Return:</comment>
  <info>bool</info>  If <strong>$enable</strong> is <info>null</info>: returns <info>true</info> if the VT100 feature is enabled, <info>false</info> otherwise.
        
        If <strong>$enable</strong> is a <info>bool</info>: Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info>
        zurückgegeben.


id: scandir
type: function
doc:
<comment>Description:</comment>
  Listet Dateien und Verzeichnisse innerhalb eines angegebenen Pfades auf
  
  Gibt ein <info>Array</info> aus Dateien und Verzeichnissen des aktuellen <strong>$directory</strong> zurück.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>      Das zu untersuchende Verzeichnis.
  <info>int</info>            <strong>$sorting_order</strong>  Standardmäßig ist die Sortierreihenfolge alphabetisch in
                                 aufsteigender Reihenfolge. Wenn der optionale Parameter
                                 <strong>$sorting_order</strong> auf <info>SCANDIR_SORT_DESCENDING</info> gesetzt wird, ist die
                                 Sortierreihenfolge alphabetisch absteigend. Wenn er auf
                                 <info>SCANDIR_SORT_NONE</info> gesetzt wird, ist das Ergebnis unsortiert.
  <info>resource|null</info>  <strong>$context</strong>        Für eine Beschreibung des Parameters <strong>$context</strong> siehe das Kapitel
                                 über Streams im Handbuch.

<comment>Return:</comment>
  <info>array|false</info>  Gibt bei Erfolg ein <info>Array</info> von Dateinamen zurück oder im Fehlerfall <info>false</info>. Wenn
               <strong>$directory</strong> kein Verzeichnis ist, wird der boolsche Wert <info>false</info> zurückgegeben und ein
               Fehler vom Typ <info>E_WARNING</info> erzeugt.

<comment>See Also:</comment>
   * <strong>opendir()</strong>
   * <strong>readdir()</strong>
   * <strong>glob()</strong>
   * <strong>is_dir()</strong>
   * <strong>sort()</strong>


id: scoutapm_get_calls
type: function
doc:
<comment>Description:</comment>
  Returns a list of instrumented calls that have occurred
  
  Returns a list of any instrumented function calls since <strong>scoutapm_get_calls()</strong> was last called. The
  list is cleared each time the function is called.

<comment>Return:</comment>
  <info>array</info>  <strong>scoutapm_get_calls()</strong> returns an array containing a list of all recorded calls to
         instrumented function calls.


id: scoutapm_list_instrumented_functions
type: function
doc:
<comment>Description:</comment>
  List functions scoutapm will instrument.
  
  Returns a list of the functions the extension will instrument.

<comment>Return:</comment>
  <info>array</info>  <strong>scoutapm_list_instrumented_functions()</strong> returns an array containing a list of all functions
         that the scoutapm extension is able to instrument in the current installation.


id: seaslog_get_author
type: function
doc:
<comment>Description:</comment>
  Get SeasLog author.

<comment>Return:</comment>
  <info>string</info>  Return SeasLog author as string.


id: seaslog_get_version
type: function
doc:
<comment>Description:</comment>
  Get SeasLog version.

<comment>Return:</comment>
  <info>string</info>  Return SeasLog version (SEASLOG_VERSION) as string.


id: sem_acquire
type: function
doc:
<comment>Description:</comment>
  Fordert Zugriff auf einen Semaphor an
  
  Standardmäßig blockiert <strong>sem_acquire()</strong> (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.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>     <strong>$semaphore</strong> ist ein Semaphor, der von <strong>sem_get()</strong> zurückgegben wurde.
  <info>bool</info>           <strong>$non_blocking</strong>  Gibt an, ob der Prozess nicht auf den Zugriff auf den Semaphor
                                warten soll. Bei <info>true</info> wird der Aufruf unmittelbar <info>false</info> zurückgeben,
                                wenn der Semaphor nicht sofort reserviert werden kann.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>sem_get()</strong>
   * <strong>sem_release()</strong>


id: sem_get
type: function
doc:
<comment>Description:</comment>
  Fordert Zugriff auf eine Semaphor-ID an
  
  <strong>sem_get()</strong> liefert eine ID, die für den Zugriff auf den System-V-Semaphor mit dem gegebenen <strong>$key</strong>
  benutzt werden kann.
  
  Weitere Aufrufe von <strong>sem_get()</strong> für den gleichen Key liefern unterschiedliche Semaphor-IDs, diese
  greifen aber auf den gleichen darunterliegenden Semaphor zu.
  
  Ist <strong>$key</strong> gleich <return>0</return> wird ein neuer privater Semaphor für jeden Aufruf von <strong>sem_get()</strong> erzeugt.

<comment>Param:</comment>
  <info>int</info>   <strong>$key</strong>           
  <info>int</info>   <strong>$max_acquire</strong>   Die Anzahl der Prozesse, die gleichzeitig Zugriff auf den Semaphor erhalten
                       können, wird durch den Parameter <strong>$max_acquire</strong> festgelegt
  <info>int</info>   <strong>$permissions</strong>   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.
  <info>bool</info>  <strong>$auto_release</strong>  Legt fest, ob der Semaphor am Skriptende automatisch freigegeben werden soll.

<comment>Return:</comment>
  <info>SysvSemaphore|false</info>  Gibt einen positiven Semaphor-Identifier zurück oder <info>false</info> bei Fehlern.

<comment>See Also:</comment>
   * <strong>sem_acquire()</strong>
   * <strong>sem_release()</strong>
   * <strong>ftok()</strong>


id: sem_release
type: function
doc:
<comment>Description:</comment>
  Gibt einen Semaphor frei
  
  <strong>sem_release()</strong> 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 <strong>sem_acquire()</strong> jederzeit wieder angefordert werden.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>  Ein Semaphor, wie er von <strong>sem_get()</strong> zurückgegeben wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>sem_get()</strong>
   * <strong>sem_acquire()</strong>


id: sem_remove
type: function
doc:
<comment>Description:</comment>
  Entfernt einen Semaphor
  
  <strong>sem_remove()</strong> entfernt einen mit <strong>sem_get()</strong> angelegten Semaphor.
  
  Auf den Sempahor kann anschließend nicht mehr zugegriffen werden.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>  Ein Semaphor, wie er von <strong>sem_get()</strong> zurückgegeben wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>sem_get()</strong>
   * <strong>sem_release()</strong>
   * <strong>sem_acquire()</strong>


id: serialize
type: function
doc:
<comment>Description:</comment>
  Erzeugt eine speicherbare Repräsentation eines Wertes
  
  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
  <strong>unserialize()</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  Der zu serialisierende Wert. <strong>serialize()</strong> kann mit allen Typen umgehen, ausgenommen
                 mit dem <info>resource</info>-Typ und einigen <info>object</info>-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 <strong>unserialize()</strong>
                 wiederhergestellt wird.
                 
                 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.

<comment>Return:</comment>
  <info>string</info>  Gibt einen String zurück, der eine Byte-Stream-Repräsentation von <strong>$value</strong> 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
          <strong>serialize()</strong> grundsätzlich in einem BLOB- statt einem CHAR- oder TEXT-Feld in einer
          Datenbank gespeichert werden.

<comment>See Also:</comment>
   * <strong>unserialize()</strong>
   * <strong>var_export()</strong>
   * <strong>json_encode()</strong>
   * Objekte serialisieren
   * __sleep
   * __wakeup
   * __serialize()
   * __unserialize()


id: session_abort
type: function
doc:
<comment>Description:</comment>
  Verwirft Änderungen am Session-Array und beendet die Session
  
  <strong>session_abort()</strong> beendet die Session, ohne Daten zu speichern. Dadurch werden die ursprünglichen
  Werte in den Session-Daten beibehalten.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * $_SESSION
   * 
     Die Konfigurationsanweisung
     session.auto_start
    
   * <strong>session_start()</strong>
   * <strong>session_reset()</strong>
   * <strong>session_commit()</strong>


id: session_cache_expire
type: function
doc:
<comment>Description:</comment>
  Liefert und/oder setzt die aktuelle Cache-Verfallszeit
  
  <strong>session_cache_expire()</strong> gibt die aktuelle Einstellung von <return>session.cache_expire</return> 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 <strong>session_cache_expire()</strong>
  bei jeder Anfrage (und vor dem Aufruf von <strong>session_start()</strong>) aufrufen.

<comment>Param:</comment>
  <info>int|null</info>  <strong>$value</strong>  Wenn <strong>$value</strong> angegeben wurde und nicht <info>null</info> ist, wird die aktuelle
                    Cache-Verfallszeit durch <strong>$value</strong> ersetzt.
                    
                     Das Setzen von <strong>$value</strong> bewirkt nur dann etwas, wenn <return>session.cache_limiter</return> auf
                    einen anderen Wert als <return>nocache</return> gesetzt ist.
                    
                    Das Setzen von <strong>$value</strong> bewirkt nur dann etwas, wenn <return>session.cache_limiter</return> auf
                    einen anderen Wert als <return>nocache</return> gesetzt ist.

<comment>Return:</comment>
  <info>int|false</info>  Gibt die aktuelle Einstellung von <return>session.cache_expire</return> 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 <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * session.cache_expire
   * session.cache_limiter
   * <strong>session_cache_limiter()</strong>


id: session_cache_limiter
type: function
doc:
<comment>Description:</comment>
  Liefert und/oder setzt die aktuelle Cacheverwaltung
  
  <strong>session_cache_limiter()</strong> 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 <return>nocache</return>
  gesetzt, so ist eine client-/proxyseitige Speicherung im Cache nicht erlaubt. Der Wert <return>public</return>
  erlaubt die Aufnahme in den Cachespeicher durch Proxies und den Client, wohingegen <return>private</return> Proxies
  die Speicherung im Cache verbietet und dem Client erlaubt, den Seiteninhalt im Cache zu speichern.
  
  Im <return>private</return>-Modus könnte ein zum Client gesendeter Expire-Header manche Browser, inklusive Mozilla,
  verwirren. Sie können dieses Problem durch Verwendung des <return>private_no_expire</return>-Modus vermeiden. In
  diesem Modus wird nie ein <return>Expire</return>-Header zum Client gesendet.
  
  Wenn die Cacheverwaltung auf <return>''</return> 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 <strong>session_cache_limiter()</strong> bei jeder
  Anfrage aufrufen (und zwar bevor <strong>session_start()</strong> aufgerufen wird).

<comment>Param:</comment>
  <info>string|null</info>  <strong>$value</strong>  Wenn <strong>$value</strong> angegeben wurde und nicht <info>null</info> ist, wird die Cacheverwaltung dem
                       neuen Wert entsprechend geändert.

<comment>Return:</comment>
  <info>string|false</info>  Gibt die Bezeichnung der aktuellen Cacheverwaltung zurück. Falls die Änderung des
                Werts fehlschlägt, wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * session.cache_limiter


id: session_commit
type: function
doc:
<comment>Description:</comment>
  Alias von session_write_close
    
  
  Diese Funktion ist ein Alias für:  <strong>session_write_close()</strong>.


id: session_create_id
type: function
doc:
<comment>Description:</comment>
  Erzeugt eine neue Session-ID
  
  <strong>session_create_id()</strong> wird verwendet, um für die aktuelle Session eine neue Session-ID zu erstellen.
  Die Funktion gibt eine kollisionsfreie Session-ID zurück.
  
  Wenn keine Session aktiv ist, entfällt die Kollisionsprüfung.
  
  Die Session-ID wird entsprechend der php.ini-Einstellungen erstellt.
  
  Es ist wichtig, dass bei der Garbage Collection (GC) dieselbe Benutzer-ID verwendet wird wie beim
  Webserver. Andernfalls kann es insbesondere bei der Dateispeicherverwaltung zu Problemen mit den
  Zugriffsrechten kommen.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>  Wenn <strong>$prefix</strong> angegeben wird, wird der neuen Session-ID das <strong>$prefix</strong> vorangestellt.
                   In der Session-ID sind nicht alle Zeichen erlaubt. Erlaubt sind Zeichen aus dem
                   Bereich <return>a-z A-Z 0-9 , (Komma) und - (Minus)</return>.

<comment>Return:</comment>
  <info>string|false</info>  <strong>session_create_id()</strong> gibt eine neue kollisionsfreie Session-ID für die aktuelle
                Session zurück. Wenn diese Funktion ohne aktive Session verwendet wird, entfällt die
                Kollisionsprüfung. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>session_regenerate_id()</strong>
   * <strong>session_start()</strong>
   * session.use_strict_mode
   * SessionHandler::create_sid


id: session_decode
type: function
doc:
<comment>Description:</comment>
  Dekodiert die Daten einer Session aus einer session-kodierten Zeichenkette
  
  <strong>session_decode()</strong> dekodiert die mittels <strong>$data</strong> ü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 <strong>unserialize()</strong>. Das Serialisierungsverfahren kann mit der Konfigurationsoption
  session.serialize_handler festgelegt werden.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Die kodierten Daten, die gespeichert werden sollen.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>session_encode()</strong>
   * session.serialize_handler


id: session_destroy
type: function
doc:
<comment>Description:</comment>
  Löscht alle in einer Session registrierten Daten
  
  <strong>session_destroy()</strong> 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 <strong>session_start()</strong> aufgerufen werden.
  
  Normalerweise ist es nicht erforderlich <strong>session_destroy()</strong> aufzurufen. Statt die Session zu löchen,
  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 <strong>setcookie()</strong> 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.
  
  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 Session 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 <strong>session_regenerate_id()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * session.use_strict_mode
   * <strong>session_reset()</strong>
   * <strong>session_regenerate_id()</strong>
   * <strong>unset()</strong>
   * <strong>setcookie()</strong>


id: session_encode
type: function
doc:
<comment>Description:</comment>
  Kodiert die Daten der aktuellen Session als session-kodierte Zeichenkette
    
  
  <strong>session_encode()</strong> 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
  <strong>serialize()</strong>. Das Serialisierungsverfahren kann mit der Konfigurationsoption
  session.serialize_handler festgelegt werden.

<comment>Return:</comment>
  <info>string|false</info>  Gibt Inhalt der aktuellen Session kodiert zurück. Bei einem Fehler wird <info>false</info>
                zurückgegeben.

<comment>See Also:</comment>
   * <strong>session_decode()</strong>
   * session.serialize_handler


id: session_gc
type: function
doc:
<comment>Description:</comment>
  Führt die Garbage Collection der Session-Daten durch
  
  <strong>session_gc()</strong> wird verwendet, um die GC (Garbage Collection) der Session-Daten durchzuführen. PHP
  führt standardmäßig eine wahrscheinlichkeitsbasierte Session-GC durch.
  
  Die wahrscheinlichkeitsbasierte GC funktioniert einigermaßen, bringt aber einige Probleme mit
  sich. 1) Die Session-Daten von Websites mit geringem Datenverkehr werden möglicherweise nicht
  innerhalb der gewünschten Frist gelöscht. 2) Bei Websites mit hohem Datenverkehr kann die GC zu
  häufig erfolgen. 3) Die GC wird durchgeführt, während eine Anfrage des Benutzers bearbeitet wird,
  was zu einer zusätzlichen Verzögerung für den Benutzer führt.
  
  Daher wird empfohlen, die GC auf Produktivsystemen regelmäßig auszuführen, bei UNIX-ähnlichen
  Systemen z. B. mit "cron". Es ist sicherzustellen, dass die wahrscheinlichkeitsbasierte GC
  deaktiviert ist, indem session.gc_probability auf 0 gesetzt wird.

<comment>Return:</comment>
  <info>int|false</info>  <strong>session_gc()</strong> gibt bei Erfolg die Anzahl der gelöschten Session-Daten zurück. Bei einem
             Fehler wird <info>false</info> zurückgegeben.
             
             Alte Speicherverfahren geben nicht die Anzahl der gelöschten Session-Daten zurück,
             sondern nur das Flag für Erfolg/Fehlschlag. In diesem Fall ist die Anzahl der
             gelöschten Session-Daten immer 1, unabhängig von der tatsächlichen Anzahl der
             gelöschten Daten.

<comment>See Also:</comment>
   * <strong>session_start()</strong>
   * <strong>session_destroy()</strong>
   * session.gc_probability


id: session_get_cookie_params
type: function
doc:
<comment>Description:</comment>
  Liefert die Parameter des Session-Cookies
  
  Gibt die Parameter des Session-Cookies zurück.

<comment>Return:</comment>
  <info>array</info>  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
         Domain-übergreifende Versenden des Cookies.
         
         "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 Domain-übergreifende Versenden des Cookies.

<comment>See Also:</comment>
   * session.cookie_lifetime
   * session.cookie_path
   * session.cookie_domain
   * session.cookie_secure
   * session.cookie_httponly
   * session.cookie_samesite
   * <strong>session_set_cookie_params()</strong>


id: session_id
type: function
doc:
<comment>Description:</comment>
  Liefert und/oder setzt die aktuelle Session-ID
  
  <strong>session_id()</strong> wird verwendet, um die Session-ID der aktuellen Session zu erhalten oder zu setzen.
  
  Die Konstante <info>SID</info> 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.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$id</strong>  Wenn <strong>$id</strong> angegeben wird und nicht <info>null</info> ist, wird die aktuelle Session-ID
                    ersetzt. <strong>session_id()</strong> muss zu diesem Zweck vor <strong>session_start()</strong> aufgerufen
                    werden. In Abhängigkeit von der Session-Routine sind in der Session-ID nicht
                    alle Zeichen erlaubt. Zum Beispiel erlaubt die dateibasierte Session-Routine nur
                    Zeichen im Bereich <return>a-z A-Z 0-9 , (Komma) und - (Minus)</return>!
                    
                    Falls Session-Cookies verwendet werden und für <strong>session_id()</strong> eine <strong>$id</strong> angegeben
                    wird, wird ungeachtet dessen, ob die aktuelle Session-ID mit der neuen identisch
                    ist, bei jedem Aufruf von <strong>session_start()</strong> ein neues Cookie gesendet.

<comment>Return:</comment>
  <info>string|false</info>  <strong>session_id()</strong> gibt die Session-ID der aktuellen Session zurück oder die leere
                Zeichenkette (<return>""</return>), falls es keine aktuelle Session gibt (es existiert keine aktuelle
                Session-ID). Bei Auftreten eines Fehlers wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>session_regenerate_id()</strong>
   * <strong>session_start()</strong>
   * <strong>session_set_save_handler()</strong>
   * session.save_handler


id: session_module_name
type: function
doc:
<comment>Description:</comment>
  Liefert und/oder setzt das aktuelle Session-Modul
  
  <strong>session_module_name()</strong> gibt den Namen des aktuellen Session-Moduls zurück, das auch unter dem Namen
  session.save_handler bekannt ist.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$module</strong>  Wenn <strong>$module</strong> angegeben wird und nicht <info>null</info> ist, wird stattdessen dieses
                        Modul verwendet. Die Übergabe von <return>"user"</return> an diesen Parameter ist verboten.
                        Statt dessen sollte <strong>session_set_save_handler()</strong> aufgerufen werden, um eine
                        benutzerdefinierte Session-Routine festzulegen.

<comment>Return:</comment>
  <info>string|false</info>  Gibt den Namen des aktuellen Session-Moduls zurück. Bei einem Fehler wird <info>false</info>
                zurückgegeben.


id: session_name
type: function
doc:
<comment>Description:</comment>
  Liefert und/oder setzt den Namen der aktuellen Session
  
  <strong>session_name()</strong> gibt den Namen der aktuellen Session zurück. Falls <strong>$name</strong> angegeben wurde,
  aktualisiert <strong>session_name()</strong> den Namen der Session und gibt den alten Namen der Session zurück.
  
  Wird ein neuer Session-Name (<strong>$name</strong>) angegeben, ändert <strong>session_name()</strong> das HTTP-Cookie (und den
  Inhalt der Ausgabe, wenn <return>session.transid</return> aktiv ist). Nachdem das HTTP-Cookie gesendet wurde,
  erzeugt <strong>session_name()</strong> einen Fehler. <strong>session_name()</strong> muss vor <strong>session_start()</strong> aufgerufen werden,
  damit die Session ordnungsgemäß funktioniert.
  
  Der Session-Name wird auf den Ausgangswert zurückgesetzt, der zu Beginn in <return>session.name</return>
  gespeichert wurde. Deshalb muss <strong>session_name()</strong> bei jeder Anfrage aufgerufen werden (und bevor
  <strong>session_start()</strong> aufgerufen wurde).

<comment>Param:</comment>
  <info>string|null</info>  <strong>$name</strong>  Der Session-Name referenziert den Namen der Session, der in Cookies und URLs
                      verwendet wird (z. B. <return>PHPSESSID</return>). Er sollte nur alphanumerische Zeichen
                      enthalten und sollte kurz und beschreibend sein (z. B. für Benutzer mit
                      aktivierter Cookie-Warnung). Wenn <strong>$name</strong> angegeben wird und nicht <info>null</info> ist,
                      wird der Name der aktuellen Session durch dessen Wert ersetzt.
                      
                       Der Session-Name darf nicht nur aus Zahlen bestehen, sondern muss mindestens
                      einen Buchstaben enthalten. Andernfalls wird jedesmal eine neue Session-ID
                      erzeugt.
                      
                      Der Session-Name darf nicht nur aus Zahlen bestehen, sondern muss mindestens
                      einen Buchstaben enthalten. Andernfalls wird jedesmal eine neue Session-ID
                      erzeugt.

<comment>Return:</comment>
  <info>string|false</info>  Gibt den Namen der aktuellen Session zurück. Wird <strong>$name</strong> übergegeben und die Funktion
                aktualisiert den Session-Namen, wird der Name der alten Session zurückgegeben. Bei
                einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * 
     Die Konfigurationsanweisung
     session.name
    


id: session_regenerate_id
type: function
doc:
<comment>Description:</comment>
  Ersetzt die aktuelle Session-ID durch eine neu erzeugte
  
  Die Funktion <strong>session_regenerate_id()</strong> 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
  <strong>session_regenerate_id()</strong> beginnen. Andernfalls wird die alte Session-ID verwendet.
  
  Zurzeit kann session_regenerate_id nicht gut mit unstabilen Netzwerken, z. B. Mobil- und
  WiFi-Netzwerke, umgehen. 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 ein konkurrierender 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 auch deren Vorbeugung.

<comment>Param:</comment>
  <info>bool</info>  <strong>$delete_old_session</strong>  Legt fest, ob die zugehörige alte Session-Datei 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.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>session_id()</strong>
   * <strong>session_create_id()</strong>
   * <strong>session_start()</strong>
   * <strong>session_destroy()</strong>
   * <strong>session_reset()</strong>
   * <strong>session_name()</strong>


id: session_register_shutdown
type: function
doc:
<comment>Description:</comment>
  Funktion zum Schließen von Sessions
  
  Registriert <strong>session_write_close()</strong> als eine Schließfunktion.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: session_reset
type: function
doc:
<comment>Description:</comment>
  Initialisiert das Session-Array mit seinen ursprünglichen Werten neu
  
  <strong>session_reset()</strong> initialisiert eine Session mit den ursprünglichen Werten, die im Session-Speicher
  abgelegt sind, neu. Diese Funktion erfordert eine aktive Session und verwirft die Änderungen in
  $_SESSION.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * $_SESSION
   * 
     Die Konfigurationsanweisung
     session.auto_start
    
   * <strong>session_start()</strong>
   * <strong>session_abort()</strong>
   * <strong>session_commit()</strong>


id: session_save_path
type: function
doc:
<comment>Description:</comment>
  Liefert und/oder setzt den aktuellen Speicherpfad der Session
  
  <strong>session_save_path()</strong> gibt den Pfad des aktuellen Verzeichnisses zurück, das zum Speichern der
  Session-Daten verwendet wird.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$path</strong>  Der Pfad der Session-Daten. Sofern angegeben und nicht <info>null</info>, wird der Pfad,
                      unter dem Daten gespeichert werden, entsprechend geändert. Zu diesem Zweck
                      muss <strong>session_save_path()</strong> vor <strong>session_start()</strong> aufgerufen werden.
                      
                       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.
                      
                      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.

<comment>Return:</comment>
  <info>string|false</info>  Gibt den Pfad des aktuellen Verzeichnisses zurück, das zum Speichern der
                Session-Daten verwendet wird. Bei einem Fehler wird <info>false</info> zurückgegeben..

<comment>See Also:</comment>
   * 
     Die Konfigurationsanweisung session.save_path
    


id: session_set_cookie_params
type: function
doc:
<comment>Description:</comment>
  Setzt die Session-Cookie-Parameter
  
  Alternative Signatur, verfügbar ab PHP 7.3.0:
  
  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 <strong>session_set_cookie_params()</strong> bei jeder Anfrage und
  noch vor dem Aufruf von <strong>session_start()</strong> aufrufen.
  
  Diese Funktion aktualisiert die Laufzeitwerte der zugehörigen Konfigurationsschlüssel, die mittels
  <strong>ini_get()</strong> abgefragt werden können.

<comment>Param:</comment>
  <info>int</info>          <strong>$lifetime_or_options</strong>  Bei Verwendung der ersten Signatur, die Lebensdauer des
                                     Session-Cookies in Sekunden.
                                     
                                     Ein assoziatives <info>Array</info>, das die Schlüssel <return>lifetime</return>, <return>path</return>,
                                     <return>domain</return>, <return>secure</return>, <return>httponly</return> und <return>samesite</return> enthalten kann. Die Werte
                                     haben dieselbe Bedeutung wie für die gleichnamigen Parameter
                                     beschrieben. Der Wert des <return>samesite</return>-Elements sollte entweder <return>Lax</return>
                                     oder <return>Strict</return> sein. Ist eine der erlaubten Optionen nicht
                                     angegeben, dann ist ihr Standardwert derselbe wie für den
                                     expliziten Parameter. Wird das <return>samesite</return>-Element nicht
                                     angegeben, dann wird das SameSite-Attribut des Cookies nicht
                                     gesetzt.
  <info>string|null</info>  <strong>$path</strong>                 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.
  <info>string|null</info>  <strong>$domain</strong>               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.
  <info>bool|null</info>    <strong>$secure</strong>               Falls auf <info>true</info> gesetzt, wird das Cookie nur über sichere
                                     Verbindungen gesendet.
  <info>bool|null</info>    <strong>$httponly</strong>             Falls auf <info>true</info> gesetzt, versucht PHP das httponly-Flag zu
                                     senden, wenn das Session-Cookie gesetzt wird.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * session.cookie_lifetime
   * session.cookie_path
   * session.cookie_domain
   * session.cookie_secure
   * session.cookie_httponly
   * session.cookie_samesite
   * <strong>session_get_cookie_params()</strong>


id: session_set_save_handler
type: function
doc:
<comment>Description:</comment>
  Setzt benutzerdefinierte Session-Speicherfunktionen
  
  Folgenden Prototypen können registriert werden:
  
  <strong>session_set_save_handler()</strong> 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.

<comment>Param:</comment>
  <info>object</info>    <strong>$sessionhandler</strong>     Eine Instanz einer Klasse, die SessionHandlerInterface, und optional
                                SessionIdInterface und/oder SessionUpdateTimestampHandlerInterface
                                implementiert, wie beispielsweise <class>SessionHandler</class>, die als
                                benutzerdefinierte Session-Speicherroutine registriert werden soll.
  <info>bool</info>      <strong>$register_shutdown</strong>  Registriert <strong>session_write_close()</strong> als eine
                                <strong>register_shutdown_function()</strong>-Funktion.
  <info>callable</info>  <strong>$open</strong>               Ein Callable mit folgender Signatur:
                                <info>bool</info>open<info>string</info><strong>$savePath</strong><info>string</info><strong>$sessionName</strong>
                                
                                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 <strong>session_start()</strong> gestartet wird. Der
                                Rückgabewert ist bei Erfolg <info>true</info> und im Fall eines Fehlers <info>false</info>.
  <info>callable</info>  <strong>$close</strong>              Ein Callable mit folgender Signatur: <info>bool</info>close
                                
                                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 <strong>session_write_close()</strong>
                                aufgerufen wurde. Der Rückgabewert sollte bei Erfolg <info>true</info> sein und
                                im Fall eines Fehlers <info>false</info>.
  <info>callable</info>  <strong>$read</strong>               Ein Callable mit folgender Signatur: <info>string</info>read<info>string</info><strong>$sessionId</strong>
                                
                                Der <strong>$read</strong>-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 <strong>session_start()</strong> aufgerufen wird. Noch bevor
                                dieser Callback aufgerufen wird, wird PHP den <strong>$open</strong>-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 <strong>$write</strong>-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 <strong>serialize()</strong> aussehen, ist zu
                                beachten, dass es sich um ein unterschiedliches Format handelt, das
                                in der Dokumentation zur ini-Einstellung session.serialize_handler
                                beschrieben wird.
  <info>callable</info>  <strong>$write</strong>              Ein Callable mit folgender Signatur:
                                <info>bool</info>write<info>string</info><strong>$sessionId</strong><info>string</info><strong>$data</strong>
                                
                                Der <strong>$write</strong>-Callback wird aufgerufen, wenn die Session gespeichert
                                und geschlossen werden muss. Dieser Callback nimmt die aktuelle
                                Session-ID 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 Session-Daten, die an diesen Callback übergeben
                                werden, sollten als zu der übergebenen Session-ID zugehörig
                                gespeichert werden. Werden diese Daten wieder gelesen, dann muss der
                                <strong>$read</strong>-Callback den genauen Wert liefern, der ursprünglich an den
                                <strong>$write</strong>-Callback übergeben wurde.
                                
                                Dieser Callback wird aufgerufen, wenn PHP herunterfährt, oder
                                explizit, wenn <strong>session_write_close()</strong> aufgerufen wird. Es ist zu
                                beachten, dass PHP intern nach Ausführung dieser Funktion den
                                <strong>$close</strong>-Callback ausführen wird.  Die "write"-Routine wird nicht
                                ausgeführt, bevor die Ausgabe abgeschlossen ist. Deshalb werden auch
                                niemals Fehlermeldungen der "write"-Routine im Browser erscheinen.
                                Wenn die Ausgabe von Fehlermeldungen nötig ist, sollte diese
                                stattdessen in eine Datei geschrieben werden.
                                
                                Die "write"-Routine wird nicht ausgeführt, bevor die Ausgabe
                                abgeschlossen ist. Deshalb werden auch niemals Fehlermeldungen der
                                "write"-Routine im Browser erscheinen. Wenn die Ausgabe von
                                Fehlermeldungen nötig ist, sollte diese stattdessen in eine Datei
                                geschrieben werden.
  <info>callable</info>  <strong>$destroy</strong>            Ein Callable mit folgender Signatur: <info>bool</info>destroy<info>string</info><strong>$sessionId</strong>
                                
                                Dieser Callback wird ausgeführt, wenn eine Session duch
                                <strong>session_destroy()</strong> oder <strong>session_regenerate_id()</strong>, mit dem
                                $destroy-Parameter auf <info>true</info> gesetzt, zerstört wird. Der Rückgabewert
                                sollte bei Erfolg <info>true</info> sein und im Fall eines Fehlers <info>false</info>.
  <info>callable</info>  <strong>$gc</strong>                 Ein Callable mit folgender Signatur: <info>bool</info>gc<info>int</info><strong>$lifetime</strong>
                                
                                Der Garbage-Collection-Callback wird von PHP intern aufgerufen, um
                                alte Session-Daten 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
                                bei Erfolg <info>true</info> sein und im Fall eines Fehlers <info>false</info>.
  <info>callable</info>  <strong>$create_sid</strong>         Ein Callable mit folgender Signatur: <info>string</info>create_sid
                                
                                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 die
                                Routine darstellt.
  <info>callable</info>  <strong>$validate_sid</strong>       Ein Callable mit folgender Signatur: <info>bool</info>validate_sid<info>string</info><strong>$key</strong>
                                
                                Dieser Callback wird ausgeführt, wenn eine Session gestartet werden
                                soll, eine Session-ID bereitgestellt wurde und
                                session.use_strict_mode aktiv ist. <strong>$key</strong> ist die zu validierende
                                Session-ID. Eine Session-ID is gültig, wenn eine Session mit dieser
                                ID bereits existiert. Der Rückgabewert sollte bei Erfolg <info>true</info> sein
                                und im Fall eines Fehlers <info>false</info>.
  <info>callable</info>  <strong>$update_timestamp</strong>   Ein Callable mit folgender Signatur:
                                <info>bool</info>update_timestamp<info>string</info><strong>$key</strong><info>string</info><strong>$val</strong>
                                
                                Dieser Callback wird ausgeführt, wenn eine Session aktualisiert
                                wird. <strong>$key</strong> ist die Session-ID, <strong>$val</strong> sind die Session-Daten. Der
                                Rückgabewert sollte bei Erfolg <info>true</info> sein und im Fall eines Fehlers
                                <info>false</info>.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * 
     Die Konfigurationsanweisung
     session.save_handler
    
   * 
     Die Konfigurationsanweisung
     session.serialize_handler
    
   * <strong>register_shutdown_function()</strong>
   * <strong>session_register_shutdown()</strong>
   * 
     Eine vollständige prozedurale Referenzimplementierung kann
     save_handler.inc
     entnommen werden
    


id: session_start
type: function
doc:
<comment>Description:</comment>
  Erzeugt eine neue Session oder setzt eine vorhandene fort
  
  <strong>session_start()</strong> 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 <strong>session_start()</strong> aufgerufen wird oder eine Session automatisch startet, ruft PHP die Öffnen-
  und Lesen-Routinen der Session-Speicherroutine auf. Dies ist entweder eine eingebaute
  Speicherroutine, die standardmäßig mitgeliefert wird oder von Erweiterungen (wie z. B. SQLite oder
  Memcached) zur Verfügung gestellt wird, oder eine eigene Routine, die mittels
  <strong>session_set_save_handler()</strong> definiert wurde. Die Lesen-Routine ruft alle vorhandenen Session-Daten
  (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 <strong>session_name()</strong> auf, bevor Sie <strong>session_start()</strong>
  aufrufen.
  
  Wenn session.use_trans_sid aktiviert ist, registriert die Funktion <strong>session_start()</strong> eine interne
  Ausgaberoutine für das Umschreiben von URLs.
  
  Verwendet ein Benutzer <return>ob_gzhandler</return> oder ähnliches mit <strong>ob_start()</strong>, dann ist die Reihenfolge der
  Funktionen wichtig für eine korrekte Ausgabe. Zum Beispiel muss <return>ob_gzhandler</return> vor Beginn der
  Session registriert werden.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  Als optionaler Parameter kann ein assoziatives Array mit Optionen angegeben
                   werden, das die aktuell gesetzten Session-Konfigurationsanweisungen überschreibt.
                   Die Schlüssel sollten nicht das <return>session.</return>-Präfix beinhalten.
                   
                   Zusätzlich zu den normalen Konfigurationsanweisungen kann auch eine
                   <return>read_and_close</return>-Option angegeben werden. Falls auf <info>true</info> 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 Session-Daten nicht verändert
                   werden.

<comment>Return:</comment>
  <info>bool</info>  Falls die Session erfolgreich gestartet wurde, gibt diese Funktion <info>true</info> zurück, andernfalls
        <info>false</info>.

<comment>See Also:</comment>
   * $_SESSION
   * 
     Die Konfigurationsanweisung
     session.auto_start
    
   * <strong>session_id()</strong>


id: session_status
type: function
doc:
<comment>Description:</comment>
  Liefert den Status der aktuellen Session
  
  <strong>session_status()</strong> wird für die Rückgabe des Status der aktuellen Session verwendet.

<comment>Return:</comment>
  <info>int</info>  <info>PHP_SESSION_DISABLED</info>, wenn Sessions deaktiviert sind. <info>PHP_SESSION_NONE</info>, wenn Sessions
       aktiviert sind, aber keine existiert. <info>PHP_SESSION_ACTIVE</info>, wenn Sessions aktiviert sind und
       eine existiert.
       
       <info>PHP_SESSION_DISABLED</info>, wenn Sessions deaktiviert sind.
       
       <info>PHP_SESSION_NONE</info>, wenn Sessions aktiviert sind, aber keine existiert.
       
       <info>PHP_SESSION_ACTIVE</info>, wenn Sessions aktiviert sind und eine existiert.

<comment>See Also:</comment>
   * <strong>session_start()</strong>


id: session_unset
type: function
doc:
<comment>Description:</comment>
  Löscht alle Session-Variablen
  
  Die Funktion <strong>session_unset()</strong> löscht alle Session-Variablen, die gegenwärtig registriert sind.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: session_write_close
type: function
doc:
<comment>Description:</comment>
  Speichert die Session-Daten und beendet die Session
  
  Beendet die aktuelle Session und speichert die Session-Daten.
  
  Session-Daten werden normalerweise nach Beenden eines Skripts gespeichert, ohne dass
  <strong>session_write_close()</strong> aufgerufen werden muss, aber da Session-Daten gesperrt werden, um
  gleichzeitiges Schreiben zu verhindern, kann jeweils immer nur ein Skript 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.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>session_register_shutdown()</strong>


id: set_error_handler
type: function
doc:
<comment>Description:</comment>
  Bestimmt eine benutzerdefinierte Funktion zur Fehlerbehandlung
  
  Setzt eine benutzerdefinierte Funktion (<strong>$callback</strong>), um Fehler in einem Skript zu behandeln.
  
  Mit dieser Funktion können während der Laufzeit benutzerdefinierte Fehlerbehandlungen erstellt
  werden, 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
  <strong>trigger_error()</strong>) eine Fehlermeldung zu generieren.
  
  Es ist unbedingt zu beachten, dass auf diese Weise die standardmäßige PHP-Fehlerbehandlung für die
  durch <strong>$error_levels</strong> angegebenen Fehlertypen vollkommen umgangen wird, außer wenn die
  Callback-Funktion <info>false</info> zurückgibt. Die Einstellungen der Funktion <strong>error_reporting()</strong> haben keine
  Auswirkung und die Fehlerbehandlungsroutine wird ohne Rücksicht darauf aufgerufen, es ist jedoch
  immer noch möglich, den aktuellen Wert von error_reporting zu lesen und entsprechend zu handeln.
  
  Es ist auch zu beachten, dass die Fehlerbehandlung dafür zuständig ist, bei Bedarf <strong>exit()</strong>
  aufzurufen, um die Ausführung des Skripts zu beenden. 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:
  <info>E_ERROR</info>, <info>E_PARSE</info>, <info>E_CORE_ERROR</info>, <info>E_CORE_WARNING</info>, <info>E_COMPILE_ERROR</info> und <info>E_COMPILE_WARNING</info> unabhängig
  davon, wo sie ausgelöst wurden, und die meisten <info>E_STRICT</info>, die in der Datei ausgelöst werden, in
  der <strong>set_error_handler()</strong> 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.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>      Falls <info>null</info> übergeben wird, wird der Handler auf seinen Standardwert
                                zurückgesetzt. Andernfalls ist der Handler ein Callback mit der
                                folgenden Signatur:
                                
                                
                                <info>bool</info>handler<info>int</info><strong>$errno</strong><info>string</info><strong>$errstr</strong><info>string</info><strong>$errfile</strong><info>int</info><strong>$errline</strong><info>array</info><strong>$errcontext</strong><strong>$errno</strong>
                                Dem erstem Parameter, <strong>$errno</strong>, wird der Schweregrad des ausgelösten
                                Fehlers als Integer übergeben. <strong>$errstr</strong> Dem zweiten Parameter,
                                <strong>$errstr</strong>, wird die Fehlermeldung als String übergeben. <strong>$errfile</strong> Wenn
                                der Callback einen dritten Parameter akzeptiert, nämlich <strong>$errfile</strong>,
                                wird der Dateiname, in dem der Fehler aufgetreten ist, als String
                                übergeben. <strong>$errline</strong> Wenn der Callback einen vierten Parameter
                                akzeptiert, nämlich <strong>$errline</strong>, wird die Zeilennummer, in der der
                                Fehler aufgetreten ist, als Integer übergeben. <strong>$errcontext</strong> Wenn der
                                Callback einen fünften Parameter akzeptiert, nämlich <strong>$errcontext</strong>,
                                wird ihm ein Array übergeben, das auf die aktive Symboltabelle zu
                                dem Punkt zeigt, an dem der Fehler auftrat. Mit anderen Worten:
                                <strong>$errcontext</strong> enthält ein Array mit allen Variablen, die im
                                fehlerauslösenden Bereich existierten. Benutzerdefinierte
                                Fehlerbehandlungen dürfen den Fehlerkontext nicht verändern.  Dieser
                                Parameter ist von PHP 7.2.0 an MISSBILLIGT und wurde in PHP 8.0.0
                                ENTFERNT. Wenn die Funktion diesen Parameter ohne Vorgabe definiert,
                                wird beim Aufruf der Funktion der Fehler "too few arguments" (zu
                                wenig Parameter) ausgelöst.
                                
                                Dem erstem Parameter, <strong>$errno</strong>, wird der Schweregrad des ausgelösten
                                Fehlers als Integer übergeben.
                                
                                Dem zweiten Parameter, <strong>$errstr</strong>, wird die Fehlermeldung als String
                                übergeben.
                                
                                Wenn der Callback einen dritten Parameter akzeptiert, nämlich
                                <strong>$errfile</strong>, wird der Dateiname, in dem der Fehler aufgetreten ist, als
                                String übergeben.
                                
                                Wenn der Callback einen vierten Parameter akzeptiert, nämlich
                                <strong>$errline</strong>, wird die Zeilennummer, in der der Fehler aufgetreten ist,
                                als Integer übergeben.
                                
                                Wenn der Callback einen fünften Parameter akzeptiert, nämlich
                                <strong>$errcontext</strong>, wird ihm ein Array übergeben, das auf die aktive
                                Symboltabelle zu dem Punkt zeigt, an dem der Fehler auftrat. Mit
                                anderen Worten: <strong>$errcontext</strong> enthält ein Array mit allen Variablen,
                                die im fehlerauslösenden Bereich existierten. Benutzerdefinierte
                                Fehlerbehandlungen dürfen den Fehlerkontext nicht verändern.
                                
                                Dieser Parameter ist von PHP 7.2.0 an MISSBILLIGT und wurde in PHP
                                8.0.0 ENTFERNT. Wenn die Funktion diesen Parameter ohne Vorgabe
                                definiert, wird beim Aufruf der Funktion der Fehler "too few
                                arguments" (zu wenig Parameter) ausgelöst.
                                
                                Falls diese Funktion <info>false</info> zurückgibt, wird mit der normalen
                                Fehlerbehandlung fortgesetzt.
  <info>int</info>            <strong>$errno</strong>         Dem erstem Parameter, <strong>$errno</strong>, wird der Schweregrad des ausgelösten
                                Fehlers als Integer übergeben.
  <info>string</info>         <strong>$errstr</strong>        Dem zweiten Parameter, <strong>$errstr</strong>, wird die Fehlermeldung als String
                                übergeben.
  <info>string</info>         <strong>$errfile</strong>       Wenn der Callback einen dritten Parameter akzeptiert, nämlich
                                <strong>$errfile</strong>, wird der Dateiname, in dem der Fehler aufgetreten ist, als
                                String übergeben.
  <info>int</info>            <strong>$errline</strong>       Wenn der Callback einen vierten Parameter akzeptiert, nämlich
                                <strong>$errline</strong>, wird die Zeilennummer, in der der Fehler aufgetreten ist,
                                als Integer übergeben.
  <info>array</info>          <strong>$errcontext</strong>    Wenn der Callback einen fünften Parameter akzeptiert, nämlich
                                <strong>$errcontext</strong>, wird ihm ein Array übergeben, das auf die aktive
                                Symboltabelle zu dem Punkt zeigt, an dem der Fehler auftrat. Mit
                                anderen Worten: <strong>$errcontext</strong> enthält ein Array mit allen Variablen,
                                die im fehlerauslösenden Bereich existierten. Benutzerdefinierte
                                Fehlerbehandlungen dürfen den Fehlerkontext nicht verändern.
                                
                                Dieser Parameter ist von PHP 7.2.0 an MISSBILLIGT und wurde in PHP
                                8.0.0 ENTFERNT. Wenn die Funktion diesen Parameter ohne Vorgabe
                                definiert, wird beim Aufruf der Funktion der Fehler "too few
                                arguments" (zu wenig Parameter) ausgelöst.
  <info>int</info>            <strong>$error_levels</strong>  Kann wie die php.ini-Konfigurationseinstellung error_reporting, die
                                bestimmt, welche Fehler angezeigt werden, zum Maskieren des Aufrufs
                                der <strong>$callback</strong>-Funktion verwendet werden. Wird diese Maske nicht
                                gesetzt, wird der <strong>$callback</strong> unabhängig von der Einstellung
                                error_reporting bei jedem Fehler aufgerufen.

<comment>Return:</comment>
  <info>callable|null</info>  Gibt die zuvor definierte Fehlerbehandlungsroutine zurück (falls eine definiert
                 wurde). Wenn der eingebaute Errorhandler verwendet wurde, wird <info>null</info> zurückgegeben.
                 Wenn der vorgenannte Errorhandler eine Klassenmethode war, gibt die Funktion ein
                 indiziertes Array mit dem Klassen- und dem Methodennamen zurück.

<comment>See Also:</comment>
   * <class>ErrorException</class>
   * <strong>error_reporting()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>trigger_error()</strong>
   * Errorlevel-Konstanten


id: set_exception_handler
type: function
doc:
<comment>Description:</comment>
  Installiert einen benutzerdefinierten Exceptionhandler
  
  Setzt den Standard-Exceptionhandler für Exceptions, die nicht von einem try/catch-Block
  aufgefangen wurden. Nach dem Aufruf von <strong>$callback</strong> wird die Ausführung angehalten.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>  Die Funktion, die aufgerufen werden soll, wenn eine nicht aufgefangene
                            Exception auftritt. Diese Handler-Funktion muss einen Parameter
                            akzeptieren, und zwar das <class>Throwable</class>-Objekt, das ausgelöst wurde. Sowohl
                            <class>Error</class> als auch <class>Exception</class> implementieren das <class>Throwable</class>-Interface. Dies
                            ist die Handler-Signatur:
                            
                            <info>void</info>handler<info>Throwable</info><strong>$ex</strong>
                            
                            Stattdessen kann <info>null</info> übergeben werden, um den Handler auf seinen
                            Standardwert zurückzusetzen.

<comment>Return:</comment>
  <info>callable|null</info>  Gibt den zuvor definierten Exception-Handler zurück oder <info>null</info> bei Fehlern oder wenn
                 kein vorheriger Exception-Handler definiert war.

<comment>See Also:</comment>
   * <strong>restore_exception_handler()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>error_reporting()</strong>
   * Exceptions


id: set_file_buffer
type: function
doc:
<comment>Description:</comment>
  Alias von stream_set_write_buffer
  
  Diese Funktion ist ein Alias für:  <strong>stream_set_write_buffer()</strong>.


id: set_include_path
type: function
doc:
<comment>Description:</comment>
  Setzt die Konfigurationsoption include_path
  
  Setzt die Konfigurationsoption include_path für die Dauer der Ausführung des Skripts.

<comment>Param:</comment>
  <info>string</info>  <strong>$include_path</strong>  Der neue Wert für den include_path.

<comment>Return:</comment>
  <info>string|false</info>  Gibt bei Erfolg den alten include_path zurück. Bei einem Fehler wird <info>false</info>
                zurückgegeben.

<comment>See Also:</comment>
   * <strong>ini_set()</strong>
   * <strong>get_include_path()</strong>
   * <strong>restore_include_path()</strong>
   * <strong>include()</strong>


id: set_time_limit
type: function
doc:
<comment>Description:</comment>
  Beschränkt die maximale Ausführungszeit
  
  Legt die Zeit in Sekunden fest, die ein Skript laufen darf. Ist diese Zeit abgelaufen, wird ein
  schwerwiegender Fehler zurückgegeben. Der Standard liegt bei 30 Sekunden, es sei denn
  <return>max_execution_time</return> wurde in php.ini gesetzt.
  
  Wenn <strong>set_time_limit()</strong> aufgerufen wird, dann startet der Zähler neu. Das heißt, wenn die
  Standardeinstellung 30 Sekunden beträgt und nach 25 Sekunden durch ein Skript ein Aufruf wie z. B.
  <return>set_time_limit(20)</return> erfolgt, darf das Skript insgesamt 45 Sekunden laufen, bevor eine Fehlermeldung
  ausgegeben wird.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  Die maximale Ausführungszeit in Sekunden oder 0, wenn die Ausführungszeit nicht
                 limitiert werden soll.

<comment>Return:</comment>
  <info>bool</info>  Gibt im Erfolgsfall <info>true</info> zurück oder <info>false</info> bei einem Fehler.

<comment>See Also:</comment>
   * max_execution_time
   * max_input_time


id: setcookie
type: function
doc:
<comment>Description:</comment>
  Sendet ein Cookie
  
  Alternative Signatur, verfügbar ab PHP 7.3.0 (benannte Parameter werden nicht unterstützt):
  
  <strong>setcookie()</strong> definiert ein mit den HTTP-Header-Informationen zu übertragendes Cookie. Wie andere
  Header auch, müssen Cookies vor jeglicher Ausgabe des Skripts gesendet werden (dies ist eine
  Einschränkung des Protokolls). Das bedeutet, dass diese Funktion vor jeglicher Ausgabe,
  einschließlich der Ausgabe von <return>\<html&gt;</return>- oder <return>\<head&gt;</return>-Tags sowie jeder Art von Whitespace, aufgerufen werden muss.
  
  Sind die Cookies einmal gesetzt, kann beim nächsten Seitenaufruf anhand des $_COOKIE-Arrays auf
  diese zugegriffen werden. Die Cookie-Werte können auch in $_REQUEST vorhanden sein.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>                Der Name des Cookies.
  <info>string</info>  <strong>$value</strong>               Der Wert des Cookies. Dieser Wert wird auf dem Computer des Benutzers
                               gespeichert, weshalb darin keine sensiblen Informationen gespeichert
                               werden sollten. Angenommen der Parameter <strong>$name</strong> ist 'cookiename', so
                               erhält man seinen Wert mittels $_COOKIE['cookiename'].
  <info>int</info>     <strong>$expires_or_options</strong>  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). Eine Möglichkeit, diesen festzulegen, besteht
                               darin, die Anzahl der Sekunden, bevor das Cookie abläuft, zum
                               Ergebnis des Aufrufs von <strong>time()</strong> zu addieren. Zum Beispiel setzt
                               <return>time()+60*60*24*30</return> die Verfallszeit des Cookies auf 30 Tage. Eine
                               weitere Möglichkeit ist, die Funktion <strong>mktime()</strong> zu verwenden. Wenn
                               dieser Parameter auf <return>0</return> gesetzt oder weggelassen wird, verfällt das
                               Cookie am Ende der Session (wenn der Browser geschlossen wird).
                               
                                Wie bestimmt aufgefallen ist, wird der Parameter <strong>$expires_or_options</strong>
                               als Unix-Timestamp übergeben und nicht im Datumsformat <return>Wdy,
                               DD-Mon-YYYY HH:MM:SS GMT</return>. Die Konvertierung wird von PHP intern
                               durchgeführt.
                               
                               Wie bestimmt aufgefallen ist, wird der Parameter <strong>$expires_or_options</strong>
                               als Unix-Timestamp übergeben und nicht im Datumsformat <return>Wdy,
                               DD-Mon-YYYY HH:MM:SS GMT</return>. Die Konvertierung wird von PHP intern
                               durchgeführt.
  <info>string</info>  <strong>$path</strong>                Der Pfad auf dem Server, innerhalb dem das Cookie verfügbar sein
                               wird. Ist er auf <return>'/'</return> gesetzt, wird das Cookie innerhalb der gesamten
                               <strong>$domain</strong> verfügbar. Ist er auf <return>'/foo/'</return> gesetzt, wird das Cookie nur
                               innerhalb des Verzeichnisses <return>/foo/</return> sowie allen Unterverzeichnissen
                               wie z. B. <return>/foo/bar/</return> von <strong>$domain</strong> verfügbar. Der Standardwert ist das
                               aktuelle Verzeichnis, in dem das Cookie gesetzt wurde.
  <info>string</info>  <strong>$domain</strong>              Die (Sub)-Domain, der das Cookie zur Verfügung steht. Wird dies auf
                               eine Subdomain (wie <return>'www.example.com'</return>) 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 <return>'example.com'</return>) gesetzt werden.
                               
                               Ältere Browser, die noch immer das veraltete RFC 2109 implementieren,
                               können ein führendes <return>.</return> benötigen, um alle Subdomains abzudecken.
  <info>bool</info>    <strong>$secure</strong>              Gibt an, dass das Cookie vom Client nur über eine sichere
                               HTTPS-Verbindung übertragen werden soll. Ist der Wert auf <info>true</info>
                               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"]).
  <info>bool</info>    <strong>$httponly</strong>            Wenn auf <info>true</info> 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. <info>true</info> oder <info>false</info>
  <info>array</info>   <strong>$options</strong>             Ein assoziatives <info>Array</info>, das die Schlüssel <return>expires</return>, <return>path</return>, <return>domain</return>,
                               <return>secure</return>, <return>httponly</return> und <return>samesite</return> enthalten kann. Ist irgendein anderer
                               Schlüssel vorhanden, wird ein Fehler der Stufe <info>E_WARNING</info> generiert.
                               Die Werte haben dieselbe Bedeutung wie für die gleichnamigen
                               Parameter beschrieben. Der Wert des <return>samesite</return>-Elements sollte entweder
                               <return>None</return>, <return>Lax</return> oder <return>Strict</return> sein. Ist eine der erlaubten Optionen nicht
                               angegeben, dann ist ihr Standardwert derselbe wie für den expliziten
                               Parameter. Wird das <return>samesite</return>-Element nicht angegeben, dann wird kein
                               SameSite-Cookie-Attribut gesetzt.

<comment>Return:</comment>
  <info>bool</info>  Erfolgt eine Ausgabe vor dem Aufruf dieser Funktion, wird <strong>setcookie()</strong> fehlschlagen und <info>false</info>
        zurückgeben. Wenn <strong>setcookie()</strong> erfolgreich durchgeführt wird, wird <info>true</info> zurückgegeben. Dies
        sagt jedoch nichts darüber aus, ob der Benutzer das Cookie auch akzeptiert hat.

<comment>See Also:</comment>
   * <strong>header()</strong>
   * <strong>setrawcookie()</strong>
   * Cookies
   * RFC 6265
   * RFC 2109


id: setlocale
type: function
doc:
<comment>Description:</comment>
  Legt regionale (locale) Einstellungen fest
  
  Alternative Signatur (benannte Parameter werden nicht unterstützt):
  
  Legt regionale (locale) Einstellungen fest.
  
  Die Locale-Informationen wirken auf den Prozess, nicht auf den Thread. Sofern Sie PHP auf einer
  Multithreading-Server-API ausführen, kann es zur Laufzeit des Skripts zu plötzlichen Änderungen
  der Locale-Einstellungen kommen, auch wenn das Skript selbst keinen <strong>setlocale()</strong>-Aufruf durchführt.
  Dies passiert, da andere Skripte in verschiedenen Threads desselben Prozesses zur selben Zeit
  prozessweit die Locale-Einstellungen mittels <strong>setlocale()</strong> ändern. Unter Windows wird die
  Locale-Einstellung von PHP 7.0.5 an per Thread verwaltet.

<comment>Param:</comment>
  <info>int</info>     <strong>$category</strong>      <strong>$category</strong> ist eine benannte Konstante (oder Zeichenkette), die die
                         Kategorie der von den regionalen Einstellungen (Locales) betroffenen
                         Funktionen angibt: <info>LC_ALL</info> für alle folgenden Werte <info>LC_COLLATE</info> für
                         String-Vergleiche, siehe <strong>strcoll()</strong> <info>LC_CTYPE</info> für Klassifizierung und
                         Umwandlung von Zeichen, zum Beispiel <strong>ctype_alpha()</strong> <info>LC_MONETARY</info> für
                         <strong>localeconv()</strong> <info>LC_NUMERIC</info> für das Dezimal-Trennzeichen (Siehe auch
                         <strong>localeconv()</strong>) <info>LC_TIME</info> für Zeit- und Datums-Formatierungen mittels
                         <strong>strftime()</strong> <info>LC_MESSAGES</info> für Systemmeldungen (verfügbar, wenn PHP mit
                         <return>liblintl</return> kompiliert wurde)
                         
                         <info>LC_ALL</info> für alle folgenden Werte
                         
                         <info>LC_COLLATE</info> für String-Vergleiche, siehe <strong>strcoll()</strong>
                         
                         <info>LC_CTYPE</info> für Klassifizierung und Umwandlung von Zeichen, zum Beispiel
                         <strong>ctype_alpha()</strong>
                         
                         <info>LC_MONETARY</info> für <strong>localeconv()</strong>
                         
                         <info>LC_NUMERIC</info> für das Dezimal-Trennzeichen (Siehe auch <strong>localeconv()</strong>)
                         
                         <info>LC_TIME</info> für Zeit- und Datums-Formatierungen mittels <strong>strftime()</strong>
                         
                         <info>LC_MESSAGES</info> für Systemmeldungen (verfügbar, wenn PHP mit <return>liblintl</return>
                         kompiliert wurde)
  <info>string</info>  <strong>$locales</strong>       Ist <strong>$locales</strong> der leere String <return>""</return>, werden die Namen der Locales von den
                         Werten der Umgebungsvariablen gleichen Namens wie die obigen Kategorien
                         oder von "LANG" bestimmt.
                         
                         Ist <strong>$locales</strong> <return>"0"</return>, sind keine regionalen Einstellungen betroffen, und es
                         wird die aktuelle Einstellung zurückgegeben.
                         
                         Folgen auf <strong>$locales</strong> 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.
  <info>string</info>  <strong>$rest</strong>          Optionale String-Parameter, die als Locale-Einstellung durchprobiert
                         werden, bis zum Erfolg.
  <info>array</info>   <strong>$locale_array</strong>  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.

<comment>Return:</comment>
  <info>string|false</info>  Gibt die neue Locale-Einstellung zurück oder <info>false</info>, 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.
                
                Der Rückgabewert von <strong>setlocale()</strong> ist von dem System abhängig, auf dem PHP läuft. Es
                wird genau das zurückgegeben, was die Systemfunktion <return>setlocale</return> zurückgibt.


id: setrawcookie
type: function
doc:
<comment>Description:</comment>
  Sendet ein Cookie, ohne seinen Wert zu URL-kodieren
  
  Alternative Signatur, verfügbar ab PHP 7.3.0 (benannte Parameter werden nicht unterstützt):
  
  <strong>setrawcookie()</strong> ist exakt das Gleiche wie <strong>setcookie()</strong> bis auf die Tatsache, dass der Wert des
  Cookies nicht automatisch URL-kodiert zum Browser gesendet wird.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>setcookie()</strong>


id: settype
type: function
doc:
<comment>Description:</comment>
  Legt den Typ einer Variablen fest
  
  Legt den Typ der Variablen <strong>$var</strong> als <strong>$type</strong> fest.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$var</strong>   Die zu konvertierende Variable.
  <info>string</info>  <strong>$type</strong>  Mögliche Werte für <strong>$type</strong> sind:  "boolean" oder "bool"  "integer" oder "int"
                 "float" oder "double"  "string"  "array"  "object"  "null"
                 
                 "boolean" oder "bool"
                 
                 "integer" oder "int"
                 
                 "float" oder "double"
                 
                 "string"
                 
                 "array"
                 
                 "object"
                 
                 "null"

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>gettype()</strong>
   * Typ-Umwandlung
   * Typen-Tricks


id: sha1
type: function
doc:
<comment>Description:</comment>
  Berechnet den SHA1-Hash eines Strings
  
  Berechnet den SHA1 Hash von <strong>$string</strong> unter Verwendung des US Secure Hash Algorithmus 1.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Die Eingabezeichenkette.
  <info>bool</info>    <strong>$binary</strong>  Ist der optionale Parameter <strong>$binary</strong> <info>true</info>, 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.

<comment>Return:</comment>
  <info>string</info>  Gibt den SHA1-Hash als Zeichenkette zurück.

<comment>See Also:</comment>
   * <strong>sha1_file()</strong>
   * <strong>crc32()</strong>
   * <strong>md5()</strong>
   * <strong>hash()</strong>
   * <strong>crypt()</strong>
   * <strong>password_hash()</strong>


id: sha1_file
type: function
doc:
<comment>Description:</comment>
  Berechnet den SHA1-Hash einer Datei
  
  Berechnet den SHA1-Hash der Datei spezifiert durch <strong>$filename</strong> unter Verwendung des US Secure Hash
  Algorithmus 1 und gibt den Hashwert zurück. Der Hash ist ein 40 Zeichen langer Hexadezimalwert.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Der Dateiname der Datei deren Hash-Wert berechnet wird.
  <info>bool</info>    <strong>$binary</strong>    Falls <info>true</info>, wird der SHA1-Extrakt im Raw-Binary-Format mit einer Länge von 20
                     Zeichen zurückgegeben.

<comment>Return:</comment>
  <info>string|false</info>  Gibt bei Erfolg einen String zurück, ansonsten <info>false</info>.

<comment>See Also:</comment>
   * <strong>sha1()</strong>
   * <strong>md5_file()</strong>
   * <strong>crc32()</strong>


id: shell_exec
type: function
doc:
<comment>Description:</comment>
  Führt einen Befehl auf der Shell aus und liefert die komplette Ausgabe als String
    
  
  Diese Funktion ist identisch zum Backtick-Operator.
  
  Unter Windows wird die darunterliegende Pipe im Textmodus geöffnet, was bewirken kann, dass die
  Funktion für binäre Ausgaben fehlschlägt. Es ist zu erwägen, für solche Fälle stattdessen <strong>popen()</strong>
  zu verwenden.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>  Der auszuführende Befehl.

<comment>Return:</comment>
  <info>string|false|null</info>  Ein String, der die Ausgabe des ausgeführten Befehls enthält, <info>false</info>, wenn die
                     Pipe nicht angelegt werden kann, oder <info>null</info>, wenn ein Fehler auftrat oder der
                     Befehl keine Ausgabe erzeugt.
                     
                     Diese Funktion kann <info>null</info> 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. Wenn Zugriff auf den
                     Exitcode des Programms erforderlich ist, sollte <strong>exec()</strong> verwendet werden.

<comment>See Also:</comment>
   * <strong>exec()</strong>
   * <strong>escapeshellcmd()</strong>


id: shm_attach
type: function
doc:
<comment>Description:</comment>
  Erzeugt oder öffnet einen gemeinsamen Speicherbereich
  
  <strong>shm_attach()</strong> liefert eine ID, über die mit dem gegebenen <strong>$key</strong> auf einen gemeinsamen
  Speicherbereich vom Typ System V zugegriffen werden kann. Der erste Aufruf legt den gemeinsamen
  Speicherbereich mit der Größe <strong>$size</strong> und den Zugriffsberechtigungen gemäß der in <strong>$permissions</strong>
  gesetzten Bits an.
  
  Ein zweiter Aufruf der Funktion <strong>shm_attach()</strong> mit dem gleichen <strong>$key</strong> liefert eine andere
  <class>SysvSharedMemory</class>-Instanz, aber beide Instanzen greifen trotzdem auf denselben zugrundeliegenden
  gemeinsamen Speicherbereich zu. <strong>$size</strong> und <strong>$permissions</strong> werden in diesem Fall ignoriert.

<comment>Param:</comment>
  <info>int</info>       <strong>$key</strong>          Eine numerische ID des gemeinsamen Speicherbereichs.
  <info>int|null</info>  <strong>$size</strong>         Die Größe des gemeinsamen Speicherbereichs in Bytes. Wird dieser Parameter
                          nicht übergeben, so wird der Wert aus <return>sysvshm.init_mem</return> in php.ini
                          angenommen. Ist auch dieser nicht gesetzt, ist der Vorgabewert 10000
                          Bytes.
  <info>int</info>       <strong>$permissions</strong>  Optionale Zugriffsrechte als Bitmaske. der Standardwert ist 0666.

<comment>Return:</comment>
  <info>SysvSharedMemory|false</info>  Gibt bei Erfolg eine <class>SysvSharedMemory</class>-Instanz zurück. Bei einem Fehler
                          wird <info>false</info> zurückgegeben..

<comment>See Also:</comment>
   * <strong>shm_detach()</strong>
   * <strong>ftok()</strong>


id: shm_detach
type: function
doc:
<comment>Description:</comment>
  Beendet die Anbindung an einen gemeinsamen Speicherbereich
  
  <strong>shm_detach()</strong> beendet die Anbindung an den in <strong>$shm</strong> spezifizierten gemeinsamen Speicherbereich, der
  durch <strong>shm_attach()</strong> erstellt wurde. Es ist zu beachten, dass der gemeinsame Speicherbereich
  weiterhin innerhalb des UNIX-Systems besteht und die enthaltenen Daten weiter vorhanden sind.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Ein gemeinsamer Speicherbereich, wie er von <strong>shm_attach()</strong> zurückgegeben
                          wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>shm_attach()</strong>
   * <strong>shm_remove()</strong>
   * <strong>shm_remove_var()</strong>


id: shm_get_var
type: function
doc:
<comment>Description:</comment>
  Liest eine Variable aus dem gemeinsamen Speicherbereich
  
  <strong>shm_get_var()</strong> liest die Variable mit dem Schlüssel <strong>$key</strong>, aus dem angegebenen gemeinsamen
  Speicherbereich. Die Variable bleibt weiter im gemeinsamen Speicherbereich erhalten.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Ein gemeinsamer Speicherbereich, wie er von <strong>shm_attach()</strong> zurückgegeben
                          wurde.
  <info>int</info>               <strong>$key</strong>  Der Variablenschlüssel.

<comment>Return:</comment>
  <info>mixed</info>  Gibt die Variable mit dem gegebenen Schlüssel zurück.

<comment>See Also:</comment>
   * <strong>shm_has_var()</strong>
   * <strong>shm_put_var()</strong>


id: shm_has_var
type: function
doc:
<comment>Description:</comment>
  Check whether a specific entry exists
  
  Checks whether a specific key exists inside a shared memory segment.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  A shared memory segment obtained from <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>  The variable key.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the entry exists, otherwise <info>false</info>

<comment>See Also:</comment>
   * <strong>shm_get_var()</strong>
   * <strong>shm_put_var()</strong>


id: shm_put_var
type: function
doc:
<comment>Description:</comment>
  Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich
  
  <strong>shm_put_var()</strong> fügt den Wert <strong>$value</strong> mit dem angegebenen <strong>$key</strong> ein oder aktualisiert ihn.
  
  Warnungen der Stufe <info>E_WARNING</info> werden erzeugt, wenn <strong>$shm</strong> kein gültiger SysV-Shared-Memory-Index ist
  oder wenn nicht genügend Speicher im angegebenen Bereich verfügbar ist.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>    Ein gemeinsamer Speicherbereich, wie er von <strong>shm_attach()</strong> zurückgegeben
                            wurde.
  <info>int</info>               <strong>$key</strong>    Der Variablenschlüssel.
  <info>mixed</info>             <strong>$value</strong>  Die Variable. Alle Variablentypen, die <strong>serialize()</strong> 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.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>shm_get_var()</strong>
   * <strong>shm_has_var()</strong>


id: shm_remove
type: function
doc:
<comment>Description:</comment>
  Entfernt einen gemeinsamen Speicherbereich unter UNIX
  
  <strong>shm_remove()</strong> entfernt den durch <strong>$shm</strong> angegebene gemeinsamen Speicherbereich. Die in diesem Bereich
  abgelegten Daten gehen dabei verloren.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Ein gemeinsamer Speicherbereich, wie er von <strong>shm_attach()</strong> zurückgegeben
                          wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>shm_remove_var()</strong>


id: shm_remove_var
type: function
doc:
<comment>Description:</comment>
  Entfernt eine Variable aus dem gemeinsamen Speicherbereich
  
  Entfernt die Variable mit dem angegebenen <strong>$key</strong> und gibt den davon belegten Speicher wieder frei.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Ein gemeinsamer Speicherbereich, wie er von <strong>shm_attach()</strong> zurückgegeben
                          wurde.
  <info>int</info>               <strong>$key</strong>  Der Schlüssel der zu löschenden Variable.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>shm_remove()</strong>


id: shmop_close
type: function
doc:
<comment>Description:</comment>
  Schließt einen gemeinsamen Speicherbereich
  
  Diese Funktion hat keine Auswirkung. Vor PHP 8.0.0 wurde sie verwendet, um die Ressource zu
  schließen.
  
  <strong>shmop_close()</strong> wird benutzt, um einen gemeinsamen Speicherbereich zu schließen.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  Die Kennung des gemeinsamen Speicherbereichs, der von <strong>shmop_open()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.

<comment>See Also:</comment>
   * <strong>shmop_open()</strong>


id: shmop_delete
type: function
doc:
<comment>Description:</comment>
  Löscht einen gemeinsamen Speicherbereich
  
  <strong>shmop_delete()</strong> wird benutzt, um einen gemeinsamen Speicherbereich zu löschen.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  Die Kennung des gemeinsamen Speicherbereichs, der von <strong>shmop_open()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: shmop_open
type: function
doc:
<comment>Description:</comment>
  Erstellt oder öffnet einen gemeinsamen Speicherbereich
  
  <strong>shmop_open()</strong> kann einen gemeinsamen Speicherbereich erstellen oder öffnen.

<comment>Param:</comment>
  <info>int</info>     <strong>$key</strong>          Die System-ID des gemeinsam genutzten Speicherbereichs. Dieser Parameter
                        kann als Dezimal- oder Hexadezimalzahl übergeben werden.
  <info>string</info>  <strong>$mode</strong>         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.
                        
                        "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.
  <info>int</info>     <strong>$permissions</strong>  Die Zugriffsberechtigungen für die gemeinsamen Speicherbereiche sind
                        dieselben wie für Dateien. Diese Berechtigungen müssen als Oktalwerte
                        übergeben werden, zum Beispiel <return>0644</return>.
  <info>int</info>     <strong>$size</strong>         Die Größe des erzeugten gemeinsam genutzten Speicherbereichs in Byte.

<comment>Return:</comment>
  <info>Shmop|false</info>  Bei Erfolg gibt <strong>shmop_open()</strong> eine <class>Shmop</class>-Instanz zurück, die verwendet werden kann, um
               auf den erstellten gemeinsamen Speicherbereich zuzugreifen. Bei einem Fehler wird
               <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>shmop_close()</strong>
   * <strong>shmop_delete()</strong>


id: shmop_read
type: function
doc:
<comment>Description:</comment>
  Liest Daten aus einem gemeinsamen Speicherbereich
  
  <strong>shmop_read()</strong> liest einen String aus einem gemeinsam genutzten Speicherbereich.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>   Der Bezeichner für den gemeinsamen Speicherbereich, der von <strong>shmop_open()</strong> erzeugt
                  wurde.
  <info>int</info>    <strong>$offset</strong>  Offset, bei dem der Lesevorgang beginnen soll; muss größer oder gleich Null und
                  kleiner oder gleich der tatsächlichen Größe des gemeinsamen Speicherbereichs sein.
  <info>int</info>    <strong>$size</strong>    Die Anzahl der zu lesenden Bytes; muss größer oder gleich Null sein und die Summe
                  von <strong>$offset</strong> und <strong>$size</strong> muss kleiner oder gleich der tatsächlichen Größe des
                  gemeinsamen Speicherbereichs sein. <return>0</return> liest shmop_size($shmid) - $start Bytes.

<comment>Return:</comment>
  <info>string</info>  Gibt die gelesenen Daten zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>shmop_write()</strong>


id: shmop_size
type: function
doc:
<comment>Description:</comment>
  Gibt die Größe des gemeinsamen Speicherbereichs zurück
  
  <strong>shmop_size()</strong> wird benutzt, um die Größe eines gemeinsamen Speicherbereichs in Byte zu ermitteln.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  Der Bezeichner des gemeinsamen Speicherbereichs, der von <strong>shmop_open()</strong> erzeugt
                 wurde.

<comment>Return:</comment>
  <info>int</info>  Zurückgegeben wird ein Integerwert der angibt, wie viele Bytes von dem gemeinsamen
       Speicherbereich belegt werden.


id: shmop_write
type: function
doc:
<comment>Description:</comment>
  Schreibt Daten in einen gemeinsamen Speicherbereich
  
  <strong>shmop_write()</strong> schreibt Daten in einen gemeinsamen Speicherbereich.

<comment>Param:</comment>
  <info>Shmop</info>   <strong>$shmop</strong>   Der Bezeichner für den gemeinsamen Speicherbereich, der von <strong>shmop_open()</strong> erzeugt
                   wurde.
  <info>string</info>  <strong>$data</strong>    Ein String, der in den gemeinsamen Speicherbereich geschrieben werden soll.
  <info>int</info>     <strong>$offset</strong>  Gibt an, von welcher Position ab Daten in den gemeinsamen Speicherbereich
                   geschrieben werden sollen. Der Offset muss größer oder gleich Null und kleiner
                   oder gleich der tatsächlichen Größe des gemeinsamen Speicherbereichs sein.

<comment>Return:</comment>
  <info>int</info>  Die Länge der geschriebenen Daten <strong>$data</strong> oder <info>false</info>, falls ein Fehler auftrat.

<comment>See Also:</comment>
   * <strong>shmop_read()</strong>


id: show_source
type: function
doc:
<comment>Description:</comment>
  Alias von highlight_file
  
  Diese Funktion ist ein Alias für:  <strong>highlight_file()</strong>.


id: shuffle
type: function
doc:
<comment>Description:</comment>
  Mischt die Elemente eines Arrays
  
  Diese Funktion mischt die Elemente eines Arrays zufällig (shuffle).
  
  Diese Funktion erzeugt keine kryptografisch sicheren Werte und darf nicht für kryptografische
  Zwecke verwendet werden oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar
  sein dürfen.
  
  Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der <class>Random\Randomizer</class> mit der
  <class>Random\Engine\Secure</class>-Engine verwendet werden. Für einfache Anwendungsfälle bieten die Funktionen
  <strong>random_int()</strong> und <strong>random_bytes()</strong> eine bequeme und sichere API, die den CSPRNG des Betriebssystems
  verwendet.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  Das zu modifizierende Array.

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.

<comment>See Also:</comment>
   * <strong>Random\Randomizer::shuffleArray()</strong>
   * <strong>Random\Randomizer::shuffleBytes()</strong>
   * <strong>Random\Randomizer::pickArrayKeys()</strong>
   * Den Vergleich von Arraysortierungsfunktionen


id: simdjson_decode
type: function
doc:
<comment>Description:</comment>
  Decodes a JSON string
  
  Takes a JSON encoded string and converts it into a PHP value. This uses a faster Simultaneous
  Instruction, Multiple Data implementation than <strong>json_decode()</strong> when it is supported by the computer
  architecture.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>         The <strong>$json</strong> <info>string</info> being decoded.
                        
                        This function only works with UTF-8 encoded strings.
                        
                        This function parses valid inputs which <strong>json_decode()</strong> can decode, provided
                        that they are less than 4 GiB long.
  <info>bool</info>    <strong>$associative</strong>  When <info>true</info>, JSON objects will be returned as associative Arrays; when <info>false</info>,
                        JSON objects will be returned as Objekts.
  <info>int</info>     <strong>$depth</strong>        Maximum nesting depth of the structure being decoded. The value must be
                        greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                         Callers should use reasonably small values, because larger depths require
                        more buffer space and will increase the recursion depth, unlike the current
                        <strong>json_decode()</strong> implementation.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value encoded in <strong>$json</strong> in appropriate PHP type. Values <return>true</return>, <return>false</return> and <return>null</return> are
         returned as <info>true</info>, <info>false</info> and <info>null</info> respectively.

<comment>See Also:</comment>
   * <strong>json_encode()</strong>
   * <strong>json_decode()</strong>


id: simdjson_is_valid
type: function
doc:
<comment>Description:</comment>
  Check if a JSON string is valid
  
  Takes a JSON encoded string and returns true if it is valid.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>   The <strong>$json</strong> <info>string</info> being validated.
                  
                  This function only works with UTF-8 encoded strings.
                  
                  This function validates inputs which <strong>json_decode()</strong> can decode, provided that they
                  are less than 4 GiB long.
  <info>int</info>     <strong>$depth</strong>  Maximum nesting depth of the structure being validated. The value must be greater
                  than <return>0</return>, and less than or equal to <return>2147483647</return>.
                   Callers should use reasonably small values, because larger depths require more
                  buffer space and will increase the recursion depth, unlike the current
                  <strong>json_decode()</strong> implementation.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$json</strong> is a valid JSON string, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>json_encode()</strong>
   * <strong>json_decode()</strong>


id: simdjson_key_count
type: function
doc:
<comment>Description:</comment>
  Returns the value at a JSON pointer.
  
  Count the number of elements of the object/array found at the requested JSON pointer.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>                  The <strong>$json</strong> <info>string</info> being queried.
  <info>string</info>  <strong>$key</strong>                   The JSON pointer <info>string</info>.
  <info>int</info>     <strong>$depth</strong>                 Maximum nesting depth of the structure being validated. The value
                                 must be greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                                  Callers should use reasonably small values, because larger depths
                                 require more buffer space and will increase the recursion depth,
                                 unlike the current <strong>json_decode()</strong> implementation.
  <info>bool</info>    <strong>$throw_if_uncountable</strong>  When true, a <class>SimdJsonException</class> will be thrown instead of returning
                                 0 when the value the JSON pointer points to is neither an object
                                 nor an array.

<comment>Return:</comment>
  <info>int</info>  Returns an Integer with the number of elements of the value at the given JSON pointer.


id: simdjson_key_exists
type: function
doc:
<comment>Description:</comment>
  Check if the JSON contains the value referred to by a JSON pointer.
  
  Count the number of elements of the object/array found at the requested JSON pointer.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>                  The <strong>$json</strong> <info>string</info> being queried.
  <info>string</info>  <strong>$key</strong>                   The JSON pointer <info>string</info>.
  <info>int</info>     <strong>$depth</strong>                 Maximum nesting depth of the structure being validated. The value
                                 must be greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                                  Callers should use reasonably small values, because larger depths
                                 require more buffer space and will increase the recursion depth,
                                 unlike the current <strong>json_decode()</strong> implementation.
  <info></info>        <strong>$throw_if_uncountable</strong>  When true, a <class>SimdJsonException</class> will be thrown instead of returning
                                 0 when the value the JSON pointer points to is neither an object
                                 nor an array.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the JSON pointer is valid and refers to a value found within a valid JSON
        string. Returns <info>false</info> if the JSON is valid but does not contain the JSON pointer.


id: simdjson_key_value
type: function
doc:
<comment>Description:</comment>
  Decodes the value of a JSON string located at the requested JSON pointer.
  
  Decodes and returns the value found at the requested JSON pointer.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>         The <strong>$json</strong> <info>string</info> being queried and decoded.
                        
                        This function only works with UTF-8 encoded strings.
                        
                        This function parses valid inputs which <strong>json_decode()</strong> can decode, provided
                        that they are less than 4 GiB long.
  <info>string</info>  <strong>$key</strong>          The JSON pointer <info>string</info>.
  <info>bool</info>    <strong>$associative</strong>  When <info>true</info>, JSON objects will be returned as associative Arrays; when <info>false</info>,
                        JSON objects will be returned as Objekts.
  <info>int</info>     <strong>$depth</strong>        Maximum nesting depth of the structure being decoded. The value must be
                        greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                         Callers should use reasonably small values, because larger depths require
                        more buffer space and will increase the recursion depth, unlike the current
                        <strong>json_decode()</strong> implementation.

<comment>Return:</comment>
  <info>mixed</info>  Returns the part of the value encoded in <strong>$json</strong> that <strong>$key</strong> refers to in appropriate PHP type.
         Values <return>true</return>, <return>false</return> and <return>null</return> are returned as <info>true</info>, <info>false</info> and <info>null</info> respectively.

<comment>See Also:</comment>
   * <strong>json_encode()</strong>
   * <strong>simdjson_decode()</strong>


id: similar_text
type: function
doc:
<comment>Description:</comment>
  Berechnet die Ähnlichkeit zweier Zeichenketten
  
  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.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Die erste Zeichenkette.
  <info>string</info>  <strong>$string2</strong>  Die zweite Zeichenkette.
                    
                    Das Vertauschen der Parameter <strong>$first</strong> und <strong>$second</strong> kann ein anderes Ergebnis zur
                    Folge haben; siehe das Beispiel weiter unten.
  <info>float</info>   <strong>$percent</strong>  Falls Sie als Referenz ein drittes Argument angeben, wird <strong>similar_text()</strong> die
                    Ähnlichkeit als Prozentwert errechnen. Dazu wird das Ergebnis von <strong>similar_text()</strong>
                    durch den Durchschnitt der Längen der angegebenen Zeichenketten dividiert und
                    mit <return>100</return> multipliziert.

<comment>Return:</comment>
  <info>int</info>  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.

<comment>See Also:</comment>
   * <strong>levenshtein()</strong>
   * <strong>soundex()</strong>


id: simplexml_import_dom
type: function
doc:
<comment>Description:</comment>
  Erzeugt ein SimpleXMLElement-Objekt aus einem DOM-Knoten
    
  
  Die Funktion wandelt einen Knoten eines DOM-Dokuments in einen SimpleXML-Knoten um. Das neue
  Objekt kann wie ein normales SimpleXML-Element verwendet werden.

<comment>Param:</comment>
  <info>SimpleXMLElement|DOMNode</info>  <strong>$node</strong>        Ein DOM-Element-Knoten.
  <info>string|null</info>               <strong>$class_name</strong>  Der optionale Parameter kann verwendet werden, wenn
                                         <strong>simplexml_import_dom()</strong> ein Objekt der spezifischen Klasse
                                         zurückgeben soll. Die gewählte Klasse sollte von der Klasse
                                         <info>SimpleXMLElement</info> abgeleitet sein.

<comment>Return:</comment>
  <info>SimpleXMLElement|null</info>  Gibt ein <info>SimpleXMLElement</info>-Objekt zurück oder <info>null</info>, falls ein Fehler
                         auftrat.

<comment>See Also:</comment>
   * <strong>dom_import_simplexml()</strong>
   * 


id: simplexml_load_file
type: function
doc:
<comment>Description:</comment>
  Übersetzt eine XML-Datei in ein Objekt
  
  Die Funktion wandelt das übergebene wohlgeformte (well-formed) XML-Dokument in ein Objekt um.

<comment>Param:</comment>
  <info>string</info>       <strong>$filename</strong>             Der Pfad zur XML-Datei.
  <info>string|null</info>  <strong>$class_name</strong>           Der optionale Parameter <strong>$class_name</strong> kann verwendet werden, wenn
                                     <strong>simplexml_load_file()</strong> ein Objekt der spezifischen Klasse
                                     zurückgeben soll. Die gewählte Klasse sollte von der Klasse
                                     <info>SimpleXMLElement</info> abgeleitet sein.
  <info>int</info>          <strong>$options</strong>              Bitweises <return>OR</return> von libxml-Konstanten für weitere Optionen.
  <info>string</info>       <strong>$namespace_or_prefix</strong>  Ein Namensraum-Präfix oder URI.
  <info>bool</info>         <strong>$is_prefix</strong>            <info>true</info>, wenn <strong>$namespace_or_prefix</strong> ein Präfix ist, <info>false</info>, wenn er
                                     ein URI ist. Der Standardwert ist <info>false</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|false</info>  Gibt ein <info>Objekt</info> der Klasse <info>SimpleXMLElement</info> zurück, dessen Eigenschaften
                          die Daten des XML-Dokuments enthalten. Bei einem Fehler wird <info>false</info>
                          zurückgegeben.
                          
                          Diese Funktion kann sowohl das
                          boolsche <info>false</info> zurückliefern, als auch einen nicht-boolschen Wert, welcher
                          zu <info>false</info> 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.

<comment>See Also:</comment>
   * <strong>simplexml_load_string()</strong>
   * SimpleXMLElement::__construct
   * 
   * <strong>libxml_use_internal_errors()</strong>
   * 
   * <strong>libxml_set_streams_context()</strong>


id: simplexml_load_string
type: function
doc:
<comment>Description:</comment>
  Übersetzt einen XML-String in ein Objekt
  
  Die Funktion erwartet einen wohlgeformten (well-formed) XML-String und gibt ihn als Objekt zurück.

<comment>Param:</comment>
  <info>string</info>       <strong>$data</strong>                 Ein wohlgeformter XML-String.
  <info>string|null</info>  <strong>$class_name</strong>           Der optionale Parameter <strong>$class_name</strong> kann verwendet werden, wenn
                                     <strong>simplexml_load_string()</strong> ein Objekt der spezifischen Klasse
                                     zurückgeben soll. Die gewählte Klasse sollte von der Klasse
                                     <info>SimpleXMLElement</info> abgeleitet sein.
  <info>int</info>          <strong>$options</strong>              Bitweises <return>OR</return> von libxml-Konstanten für weitere Optionen.
  <info>string</info>       <strong>$namespace_or_prefix</strong>  Namensraum-Präfix oder URI.
  <info>bool</info>         <strong>$is_prefix</strong>            <info>true</info>, wenn <strong>$namespace_or_prefix</strong> ein Präfix ist, <info>false</info>, wenn er
                                     ein URI ist. Standardwert ist <info>false</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|false</info>  Gibt ein <info>Objekt</info> der Klasse <info>SimpleXMLElement</info> zurück, dessen Eigenschaften
                          die Daten beinhalten, wie sie im XML-Dokument abgebildet sind. Tritt ein
                          Fehler auf, wird <info>false</info> zurückgegeben.
                          
                          Diese Funktion kann sowohl das
                          boolsche <info>false</info> zurückliefern, als auch einen nicht-boolschen Wert, welcher
                          zu <info>false</info> 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.

<comment>See Also:</comment>
   * <strong>simplexml_load_file()</strong>
   * SimpleXMLElement::__construct
   * 
   * <strong>libxml_use_internal_errors()</strong>
   * 


id: sin
type: function
doc:
<comment>Description:</comment>
  Sinus
  
  <strong>sin()</strong> berechnet den Sinus des Winkels <strong>$num</strong>. Der Parameter <strong>$num</strong> ist im Bogenmaß.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  Ein Winkel in Bogenmaß.

<comment>Return:</comment>
  <info>float</info>  Der Sinus von <strong>$num</strong>.

<comment>See Also:</comment>
   * <strong>asin()</strong>
   * <strong>sinh()</strong>
   * <strong>cos()</strong>
   * <strong>tan()</strong>
   * <strong>deg2rad()</strong>


id: sinh
type: function
doc:
<comment>Description:</comment>
  Sinus hyperbolikus
  
  Berechnet den Sinus hyperbolikus des Parameters <strong>$num</strong>, welcher als <return>(exp($num) - exp(-$num))/2</return>
  definiert ist.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  Der zu verarbeitende Wert.

<comment>Return:</comment>
  <info>float</info>  Der Sinus hyperbolikus von <strong>$num</strong>.

<comment>See Also:</comment>
   * <strong>sin()</strong>
   * <strong>asinh()</strong>
   * <strong>cosh()</strong>
   * <strong>tanh()</strong>


id: sizeof
type: function
doc:
<comment>Description:</comment>
  Alias von count
  
  Diese Funktion ist ein Alias für:  <strong>count()</strong>.


id: sleep
type: function
doc:
<comment>Description:</comment>
  Verzögert die Programmausführung
  
  Verzögert die weitere Skript-Ausführung für die angegebene Anzahl von <strong>$Sekunden</strong>.
  
  Um die Programmausführung für einen Bruchteil einer Sekunde zu verzögern, muss die Funktion
  <strong>usleep()</strong> verwendet werden, da <strong>sleep()</strong> einen Integer erwartet. Zum Beispiel unterbricht sleep(0.25)
  die Programmausführung für <return>0</return> Sekunden.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  Die Verzögerung in Sekunden (muss größer oder gleich <return>0</return> sein).

<comment>Return:</comment>
  <info>int</info>  Gibt bei Erfolg Null zurück.
       
       Wenn der Aufruf durch ein Signal unterbrochen wurde, gibt <strong>sleep()</strong> eine positive Zahl zurück.
       Auf Windows ist dieser Wert immer <return>192</return> (der Wert der <info>WAIT_IO_COMPLETION</info> Konstanten der Windows
       API). Auf anderen Plattformen ist der Rückgabewert die Anzahl der Sekunden die das Programm
       eigentlich noch "schlafen" sollte.

<comment>See Also:</comment>
   * <strong>usleep()</strong>
   * <strong>time_nanosleep()</strong>
   * <strong>time_sleep_until()</strong>
   * <strong>set_time_limit()</strong>


id: snmp2_get
type: function
doc:
<comment>Description:</comment>
  Fetch an SNMP object
  
  The <strong>snmp2_get()</strong> function is used to read the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The SNMP agent.
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>snmp2_set()</strong>


id: snmp2_getnext
type: function
doc:
<comment>Description:</comment>
  Fetch the SNMP object which follows the given object id
  
  The <strong>snmp2_get_next()</strong> function is used to read the value of the SNMP object that follows the
  specified <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error. In case of an error, an E_WARNING
         message is shown.

<comment>See Also:</comment>
   * <strong>snmp2_get()</strong>
   * <strong>snmp2_walk()</strong>


id: snmp2_real_walk
type: function
doc:
<comment>Description:</comment>
  Return all objects including their respective object ID within the specified one
  
  The <strong>snmp2_real_walk()</strong> function is used to traverse over a number of SNMP objects starting from
  <strong>$object_id</strong> and return not only their values but also their object ids.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array of the SNMP object ids and their values on success or
               <info>false</info> on error. In case of an error, an E_WARNING message is shown.

<comment>See Also:</comment>
   * <strong>snmp2_walk()</strong>


id: snmp2_set
type: function
doc:
<comment>Description:</comment>
  Set the value of an SNMP object
  
  <strong>snmp2_set()</strong> is used to set the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The write community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id.
  <info>array|string</info>  <strong>$type</strong>       Die MIB definiert den Typ jeder Objekt-ID. Dieser muss als ein einzelnes
                            Zeichen aus der folgenden Liste angegeben werden.
                            
                            Wenn <info>OPAQUE_SPECIAL_TYPES</info> beim Kompilieren der SNMP-Bibliothek definiert
                            wurde, sind auch die folgenden Angaben gültig:
                            
                            In den meisten Fällen wird der entsprechende ASN.1-Typ verwendet. 's',
                            'x', 'd' und 'b' sind alles verschiedene Arten, einen OCTET STRING-Wert
                            anzugeben, und der vorzeichenlose Typ 'u' wird auch für den Umgang mit
                            Gauge32-Werten verwendet.
                            
                            Wenn die MIB-Dateien mit "snmp_read_mib" in den MIB-Baum geladen oder in
                            der libsnmp-Konfiguration angegeben werden, kann '=' als als Parameter
                            <strong>$type</strong> für alle Objekt-IDs verwendet werden, da der Typ dann automatisch
                            aus der MIB gelesen werden kann.
                            
                            Zu beachten ist, dass es zwei Möglichkeiten gibt, eine Variable vom Typ
                            BITS zu setzen, z. B. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3),
                            snmp(4), ssh(5), https(6)}":
                            
                            Die Verwendung des Typs "b" und eine Liste von Bitnummern. Diese Methode
                            wird nicht empfohlen, da eine GET-Anfrage für dieselbe OID z. B. 0xF8
                            zurückgeben würde.
                            
                            Die Verwendung des Typs "x" und eine Hex-Zahl, aber ohne(!) das übliche
                            Präfix "0x".
                            
                            Siehe den Abschnitt Beispiele für weitere Details.
  <info>array|string</info>  <strong>$value</strong>      The new value.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> 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".

<comment>See Also:</comment>
   * <strong>snmp2_get()</strong>


id: snmp2_walk
type: function
doc:
<comment>Description:</comment>
  Fetch all the SNMP objects from an agent
  
  <strong>snmp2_walk()</strong> function is used to read all the values from an SNMP agent specified by the
  <strong>$hostname</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  If <info>null</info>, <strong>$object_id</strong> is taken as the root of the SNMP objects tree and
                            all objects under that tree are returned as an array.
                            
                            If <strong>$object_id</strong> is specified, all the SNMP objects below that <strong>$object_id</strong>
                            are returned.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of SNMP object values starting from the <strong>$object_id</strong> as root or <info>false</info>
               on error.

<comment>See Also:</comment>
   * <strong>snmp2_real_walk()</strong>


id: snmp3_get
type: function
doc:
<comment>Description:</comment>
  Fetch an SNMP object
  
  The <strong>snmp3_get()</strong> function is used to read the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>snmp3_set()</strong>


id: snmp3_getnext
type: function
doc:
<comment>Description:</comment>
  Fetch the SNMP object which follows the given object id
  
  The <strong>snmp3_getnext()</strong> function is used to read the value of the SNMP object that follows the
  specified <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error. In case of an error, an E_WARNING
         message is shown.

<comment>See Also:</comment>
   * <strong>snmp3_get()</strong>
   * <strong>snmp3_walk()</strong>


id: snmp3_real_walk
type: function
doc:
<comment>Description:</comment>
  Return all objects including their respective object ID within the specified one
  
  The <strong>snmp3_real_walk()</strong> function is used to traverse over a number of SNMP objects starting from
  <strong>$object_id</strong> and return not only their values but also their object ids.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (MD5 or SHA)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array of the SNMP object ids and their values on success or
               <info>false</info> on error. In case of an error, an E_WARNING message is shown.

<comment>See Also:</comment>
   * <strong>snmpwalk()</strong>


id: snmp3_set
type: function
doc:
<comment>Description:</comment>
  Set the value of an SNMP object
  
  <strong>snmp3_set()</strong> is used to set the value of an SNMP object specified by the <strong>$object_id</strong>.
  
  Even if the security level does not use an auth or priv protocol/password valid values have to be
  specified.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (MD5 or SHA)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>array|string</info>  <strong>$type</strong>                Die MIB definiert den Typ jeder Objekt-ID. Dieser muss als ein
                                     einzelnes Zeichen aus der folgenden Liste angegeben werden.
                                     
                                     Wenn <info>OPAQUE_SPECIAL_TYPES</info> beim Kompilieren der SNMP-Bibliothek
                                     definiert wurde, sind auch die folgenden Angaben gültig:
                                     
                                     In den meisten Fällen wird der entsprechende ASN.1-Typ
                                     verwendet. 's', 'x', 'd' und 'b' sind alles verschiedene Arten,
                                     einen OCTET STRING-Wert anzugeben, und der vorzeichenlose Typ
                                     'u' wird auch für den Umgang mit Gauge32-Werten verwendet.
                                     
                                     Wenn die MIB-Dateien mit "snmp_read_mib" in den MIB-Baum
                                     geladen oder in der libsnmp-Konfiguration angegeben werden,
                                     kann '=' als als Parameter <strong>$type</strong> für alle Objekt-IDs verwendet
                                     werden, da der Typ dann automatisch aus der MIB gelesen werden
                                     kann.
                                     
                                     Zu beachten ist, dass es zwei Möglichkeiten gibt, eine Variable
                                     vom Typ BITS zu setzen, z. B. "SYNTAX BITS {telnet(0), ftp(1),
                                     http(2), icmp(3), snmp(4), ssh(5), https(6)}":
                                     
                                     Die Verwendung des Typs "b" und eine Liste von Bitnummern.
                                     Diese Methode wird nicht empfohlen, da eine GET-Anfrage für
                                     dieselbe OID z. B. 0xF8 zurückgeben würde.
                                     
                                     Die Verwendung des Typs "x" und eine Hex-Zahl, aber ohne(!) das
                                     übliche Präfix "0x".
                                     
                                     Siehe den Abschnitt Beispiele für weitere Details.
  <info>array|string</info>  <strong>$value</strong>               The new value
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> 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".


id: snmp3_walk
type: function
doc:
<comment>Description:</comment>
  Fetch all the SNMP objects from an agent
  
  <strong>snmp3_walk()</strong> function is used to read all the values from an SNMP agent specified by the
  <strong>$hostname</strong>.
  
  Even if the security level does not use an auth or priv protocol/password valid values have to be
  specified.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           If <info>null</info>, <strong>$object_id</strong> is taken as the root of the SNMP objects
                                     tree and all objects under that tree are returned as an array.
                                     
                                     If <strong>$object_id</strong> is specified, all the SNMP objects below that
                                     <strong>$object_id</strong> are returned.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of SNMP object values starting from the <strong>$object_id</strong> as root or <info>false</info>
               on error.

<comment>See Also:</comment>
   * <strong>snmp3_real_walk()</strong>


id: snmp_get_quick_print
type: function
doc:
<comment>Description:</comment>
  Holt den aktuellen Wert der quick_print-Einstellung der NET-SNMP-Bibliothek
    
  
  Gibt den aktuellen Wert von quick_print der NET-SNMP-Bibliothek zurück. quick_print ist
  standardmäßig abgeschaltet.

<comment>Return:</comment>
  <info>bool</info>  Gibt <info>true</info> zurück, wenn quick_print aktiviert ist, anderfalls <info>false</info>.

<comment>See Also:</comment>
   * <strong>snmp_set_quick_print()</strong> für die vollständige
    Beschreibung der Wirkung von quick_print.


id: snmp_get_valueretrieval
type: function
doc:
<comment>Description:</comment>
  Return the method how the SNMP values will be returned

<comment>Return:</comment>
  <info>int</info>  OR-ed combitantion of constants ( <info>SNMP_VALUE_LIBRARY</info> or <info>SNMP_VALUE_PLAIN</info> ) with possible
       SNMP_VALUE_OBJECT set.

<comment>See Also:</comment>
   * <strong>snmp_set_valueretrieval()</strong>
   * 


id: snmp_read_mib
type: function
doc:
<comment>Description:</comment>
  Reads and parses a MIB file into the active MIB tree
    
  
  This function is used to load additional, e.g. vendor specific, MIBs so that human readable OIDs
  like <return>VENDOR-MIB::foo.1</return> instead of error prone numeric OIDs can be used.
  
  The order in which the MIBs are loaded does matter as the underlying Net-SNMP library will print
  warnings if referenced objects cannot be resolved.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename of the MIB.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: snmp_set_enum_print
type: function
doc:
<comment>Description:</comment>
  Return all values that are enums with their enum value instead of the raw integer
    
  
  This function toggles if snmpwalk/snmpget etc. should automatically lookup enum values in the MIB
  and return them together with their human readable string.

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  As the value is interpreted as boolean by the Net-SNMP library, it can only be "0"
                 or "1".

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.


id: snmp_set_oid_numeric_print
type: function
doc:
<comment>Description:</comment>
  Alias von snmp_set_oid_output_format
  
  Diese Funktion ist ein Alias für:  <strong>snmp_set_oid_output_format()</strong>.

<comment>See Also:</comment>
   * <strong>snmp_set_oid_output_format()</strong>


id: snmp_set_oid_output_format
type: function
doc:
<comment>Description:</comment>
  Set the OID output format
    
  
  <strong>snmp_set_oid_output_format()</strong> sets the output format to be full or numeric.

<comment>Param:</comment>
  <info>int</info>  <strong>$format</strong>  

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.


id: snmp_set_quick_print
type: function
doc:
<comment>Description:</comment>
  Setzt den Wert von enable innerhalb der
     NET-SNMP-Bibliothek
    
  
  Setzt den Wert von <strong>$enable</strong> innerhalb der NET-SNMP-Bibliothek. Falls es gesetzt ist (1), gibt die
  SNMP-Bibliothek 'quick printed'-Werte zurück. Das bedeutet, dass nur der Wert ausgegeben wird.
  Wenn <strong>$enable</strong> nicht aktiviert ist (Standardeinstellung), gibt die NET-SNMP-Bibliothek zusätzliche
  Informationen aus, einschließlich des Typs des Wertes (d. h. IpAddress oder OID). Darüber hinaus
  gibt die Bibliothek für alle Werte mit weniger als vier Zeichen 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.

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.

<comment>See Also:</comment>
   * <strong>snmp_get_quick_print()</strong>


id: snmp_set_valueretrieval
type: function
doc:
<comment>Description:</comment>
  Specify the method how the SNMP values will be returned

<comment>Param:</comment>
  <info>int</info>  <strong>$method</strong>  

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.

<comment>See Also:</comment>
   * <strong>snmp_get_valueretrieval()</strong>
   * 


id: snmpget
type: function
doc:
<comment>Description:</comment>
  Ruft ein SNMP-Objekt ab
  
  Die Funktion <strong>snmpget()</strong> wird verwendet, um den Wert eines SNMP-Objekts zu ermitteln, das mit
  <strong>$object_id</strong> näher bestimmt ist.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Der SNMP-Agent.
  <info>string</info>        <strong>$community</strong>  Die "read community".
  <info>array|string</info>  <strong>$object_id</strong>  Das SNMP-Objekt.
  <info>int</info>           <strong>$timeout</strong>    Die Anzahl der Mikrosekunden bis zum ersten Timeout.
  <info>int</info>           <strong>$retries</strong>    Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

<comment>Return:</comment>
  <info>mixed</info>  Gibt bei Erfolg den Wert eines SNMP-Objekts zurück oder <info>false</info> bei einem Fehler.

<comment>See Also:</comment>
   * <strong>snmpset()</strong>


id: snmpgetnext
type: function
doc:
<comment>Description:</comment>
  Fetch the SNMP object which follows the given object id
    
  
  The <strong>snmpgetnext()</strong> function is used to read the value of the SNMP object that follows the specified
  <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error. In case of an error, an E_WARNING
         message is shown.

<comment>See Also:</comment>
   * <strong>snmpget()</strong>
   * <strong>snmpwalk()</strong>


id: snmprealwalk
type: function
doc:
<comment>Description:</comment>
  Return all objects including their respective object ID within the specified one
    
  
  The <strong>snmprealwalk()</strong> function is used to traverse over a number of SNMP objects starting from
  <strong>$object_id</strong> and return not only their values but also their object ids.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array of the SNMP object ids and their values on success or
               <info>false</info> on error. In case of an error, an E_WARNING message is shown.

<comment>See Also:</comment>
   * <strong>snmpwalk()</strong>


id: snmpset
type: function
doc:
<comment>Description:</comment>
  Setzt den Wert eines SNMP-Objekts
  
  Die Funktion <strong>snmpset()</strong> wird benutzt, um den Wert eines SNMP-Objekts zu setzen, das mit <strong>$object_id</strong>
  angegeben wird.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Der Hostname des SNMP-Agenten (Server).
  <info>string</info>        <strong>$community</strong>  Die "write community".
  <info>array|string</info>  <strong>$object_id</strong>  Die SNMP-Objektkennung.
  <info>array|string</info>  <strong>$type</strong>       Die MIB definiert den Typ jeder Objekt-ID. Dieser muss als ein einzelnes
                            Zeichen aus der folgenden Liste angegeben werden.
                            
                            Wenn <info>OPAQUE_SPECIAL_TYPES</info> beim Kompilieren der SNMP-Bibliothek definiert
                            wurde, sind auch die folgenden Angaben gültig:
                            
                            In den meisten Fällen wird der entsprechende ASN.1-Typ verwendet. 's',
                            'x', 'd' und 'b' sind alles verschiedene Arten, einen OCTET STRING-Wert
                            anzugeben, und der vorzeichenlose Typ 'u' wird auch für den Umgang mit
                            Gauge32-Werten verwendet.
                            
                            Wenn die MIB-Dateien mit "snmp_read_mib" in den MIB-Baum geladen oder in
                            der libsnmp-Konfiguration angegeben werden, kann '=' als als Parameter
                            <strong>$type</strong> für alle Objekt-IDs verwendet werden, da der Typ dann automatisch
                            aus der MIB gelesen werden kann.
                            
                            Zu beachten ist, dass es zwei Möglichkeiten gibt, eine Variable vom Typ
                            BITS zu setzen, z. B. "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3),
                            snmp(4), ssh(5), https(6)}":
                            
                            Die Verwendung des Typs "b" und eine Liste von Bitnummern. Diese Methode
                            wird nicht empfohlen, da eine GET-Anfrage für dieselbe OID z. B. 0xF8
                            zurückgeben würde.
                            
                            Die Verwendung des Typs "x" und eine Hex-Zahl, aber ohne(!) das übliche
                            Präfix "0x".
                            
                            Siehe den Abschnitt Beispiele für weitere Details.
  <info>array|string</info>  <strong>$value</strong>      Der neue Wert.
  <info>int</info>           <strong>$timeout</strong>    Die Anzahl der Mikrosekunden bis zum ersten Timeout.
  <info>int</info>           <strong>$retries</strong>    Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> 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."
        ausgegeben. Wenn eine unbekannte oder ungültige OID angegeben wird, lautet die Warnung
        wahrscheinlich "Could not add variable".

<comment>See Also:</comment>
   * <strong>snmpget()</strong>


id: snmpwalk
type: function
doc:
<comment>Description:</comment>
  Ruft alle SNMP-Objekte eines Agenten ab
  
  Die Funktion <strong>snmpwalk()</strong> wird verwendet, um alle Werte von dem SNMP-Agenten zu lesen, der bei
  <strong>$hostname</strong> angegeben wurde.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Der SNMP-Agent (Server).
  <info>string</info>        <strong>$community</strong>  Die "read community".
  <info>array|string</info>  <strong>$object_id</strong>  Wenn <info>null</info>, wird <strong>$object_id</strong> als Wurzel des SNMP-Objektbaums interpretiert
                            und alle Objekte in diesem Baum werden als Array zurückgegeben.
                            
                            Wird <strong>$object_id</strong> angegeben, werden alle SNMP-Objekte unter dieser
                            <strong>$object_id</strong> zurückgegeben.
  <info>int</info>           <strong>$timeout</strong>    Die Anzahl der Mikrosekunden bis zum ersten Timeout.
  <info>int</info>           <strong>$retries</strong>    Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

<comment>Return:</comment>
  <info>array|false</info>  Gibt ein Array von SNMP-Objektwerten, beginnend mit <strong>$object_id</strong> als Wurzel, zurück
               oder <info>false</info> im Fehlerfall.

<comment>See Also:</comment>
   * <strong>snmprealwalk()</strong>


id: snmpwalkoid
type: function
doc:
<comment>Description:</comment>
  Ruft den Informationsbaum einer Netzwerkeinheit ab
  
  Die Funktion <strong>snmpwalkoid()</strong> wird verwendet, um alle Objektkennungen und deren Werte von dem
  SNMP-Agenten zu lesen, der bei <strong>$hostname</strong> angegeben wurde.
  
  Die Existenz von <strong>snmpwalkoid()</strong> und <strong>snmpwalk()</strong> hat historische Gründe. Beide Funktionen gibt es aus
  Kompatiblitätsgründen. Stattdessen ist <strong>snmprealwalk()</strong> zu verwenden.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Der SNMP-Agent.
  <info>string</info>        <strong>$community</strong>  Die "read community".
  <info>array|string</info>  <strong>$object_id</strong>  Wenn <info>null</info>, wird <strong>$object_id</strong> als Wurzel des SNMP-Objektbaums interpretiert
                            und alle Objekte in diesem Baum werden als Array zurückgegeben.
                            
                            Wird <strong>$object_id</strong> angegeben, werden alle SNMP-Objekte unter dieser
                            <strong>$object_id</strong> zurückgegeben.
  <info>int</info>           <strong>$timeout</strong>    Die Anzahl der Mikrosekunden bis zum ersten Timeout.
  <info>int</info>           <strong>$retries</strong>    Die Anzahl der Wiederholungsversuche, wenn Timeouts auftreten.

<comment>Return:</comment>
  <info>array|false</info>  Gibt ein assoziatives Array mit Objektkennungen und deren entsprechenden
               Objektwerten, beginnend mit <strong>$object_id</strong> als Wurzel, zurück oder <info>false</info> im Fehlerfall.

<comment>See Also:</comment>
   * <strong>snmprealwalk()</strong>


id: socket_accept
type: function
doc:
<comment>Description:</comment>
  Akzeptiert eine Verbindung an einem Socket
  
  Nachdem der Socket <strong>$socket</strong>  mit <strong>socket_create()</strong> erzeugt, mit <strong>socket_bind()</strong> mit einem Namen
  verknüpft und mit <strong>socket_listen()</strong> angewiesen wurde, nach eingehenden Verbindungsanforderungen zu
  horchen, werden sie mit dieser Funktion an dem Socket zugelassen. Nach einem erfogreichen
  Verbindungsaufbau wird eine neue <class>Socket</class>-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 <strong>socket_accept()</strong> so
  lange, bis eine Verbindung angefordert wird. Falls der Socket <strong>$socket</strong> mit den Funktionen
  <strong>socket_set_blocking()</strong> oder <strong>socket_set_nonblock()</strong> auf 'nicht blockieren' gesetzt wurde, wird <info>false</info>
  zurückgegeben.
  
  Die <class>Socket</class>-Instanz, die von <strong>socket_accept()</strong> zurückgegeben wird, sollte nicht dazu benutzt werden,
  neue Verbindungen zuzulassen. Der ursprüngliche wartende Socket <strong>$socket</strong> bleibt dagegen geöffnet
  und kann wiederverwendet werden.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit der Funktion <strong>socket_create()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>Socket|false</info>  Gibt bei Erfolg eine neue <class>Socket</class>-Instanz zurück oder <info>false</info>, falls ein Fehler
                auftritt. Der aktuelle Fehlercode kann mit der Funktion <strong>socket_last_error()</strong>
                ermittelt werden. Dieser Fehlercode kann an die Funktion <strong>socket_strerror()</strong> übergeben
                werden, um eine textuelle Beschreibung des Fehlers zu erhalten.

<comment>See Also:</comment>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_strerror()</strong>


id: socket_addrinfo_bind
type: function
doc:
<comment>Description:</comment>
  Create and bind to a socket from a given addrinfo
  
  Create a <class>Socket</class> instance, and bind it to the provided <class>AddressInfo</class>.  The return value of this
  function may be used with <strong>socket_listen()</strong>.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  <class>AddressInfo</class> instance created from <strong>socket_addrinfo_lookup()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  Returns a <class>Socket</class> instance on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_connect()</strong>
   * <strong>socket_addrinfo_explain()</strong>
   * <strong>socket_addrinfo_lookup()</strong>
   * <strong>socket_listen()</strong>


id: socket_addrinfo_connect
type: function
doc:
<comment>Description:</comment>
  Create and connect to a socket from a given addrinfo
  
  Create a <class>Socket</class> instance, and connect it to the provided <class>AddressInfo</class> instance.  The return value
  of this function may be used with the rest of the socket functions.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  <class>AddressInfo</class> instance created from <strong>socket_addrinfo_lookup()</strong>

<comment>Return:</comment>
  <info>Socket|false</info>  Returns a <class>Socket</class> instance on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_bind()</strong>
   * <strong>socket_addrinfo_explain()</strong>
   * <strong>socket_addrinfo_lookup()</strong>


id: socket_addrinfo_explain
type: function
doc:
<comment>Description:</comment>
  Get information about addrinfo
  
  <strong>socket_addrinfo_explain()</strong> exposed the underlying <return>addrinfo</return> structure.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  <class>AddressInfo</class> instance created from <strong>socket_addrinfo_lookup()</strong>

<comment>Return:</comment>
  <info>array</info>  Returns an array containing the fields in the <return>addrinfo</return> structure.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_bind()</strong>
   * <strong>socket_addrinfo_connect()</strong>
   * <strong>socket_addrinfo_lookup()</strong>


id: socket_addrinfo_lookup
type: function
doc:
<comment>Description:</comment>
  Get array with contents of getaddrinfo about the given hostname
  
  Lookup different ways we can connect to <strong>$host</strong>.  The returned array contains a set of <class>AddressInfo</class>
  instances that we can bind to using <strong>socket_addrinfo_bind()</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$host</strong>     Hostname to search.
  <info>string|null</info>  <strong>$service</strong>  The service to connect to. If service is a numeric string, it designates
                         the port. Otherwise it designates a network service name, which is mapped
                         to a port by the operating system.
  <info>array</info>        <strong>$hints</strong>    Hints provide criteria for selecting addresses returned.  You may specify
                         the hints as defined by getaddrinfo.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of <class>AddressInfo</class> instances that can be used with the other
               socket_addrinfo functions. On failure, <info>false</info> is returned.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_bind()</strong>
   * <strong>socket_addrinfo_connect()</strong>
   * <strong>socket_addrinfo_explain()</strong>


id: socket_atmark
type: function
doc:
<comment>Description:</comment>
  Determines whether socket is at out-of-band mark
  
  Determines whether <strong>$socket</strong> is at out-of-band mark.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_connect()</strong>
   * <strong>socket_create()</strong>


id: socket_bind
type: function
doc:
<comment>Description:</comment>
  Verknüpft einen Socket mit einem Namen
  
  <strong>socket_bind()</strong> verknüpft den Namen, der in <strong>$address</strong> angegeben ist, mit dem Socket <strong>$socket</strong>. Dies
  muss geschehen, bevor eine Verbindung mittels <strong>socket_connect()</strong> oder <strong>socket_listen()</strong> aufgebaut
  wird.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> erzeugt wurde.
  <info>string</info>  <strong>$address</strong>  Falls der Socket zur <info>AF_INET</info>-Familie gehört, ist der Parameter <strong>$address</strong> eine IP
                    in Punktnotation (z. B. <return>127.0.0.1</return>)
                    
                    Falls der Socket zur <info>AF_UNIX</info>-Familie gehört, ist der Parameter <strong>$address</strong> der Pfad
                    eines Unix-Domain Sockets (z. B. /tmp/my.sock).
  <info>int</info>     <strong>$port</strong>     Der Parameter <strong>$port</strong> wird nur verwendet, wenn an einen Socket der <info>AF_INET</info>-Familie
                    gebunden wird, und gibt den Port an, an dem auf Verbindungen gelauscht wird.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.
        
        Der Fehlercode kann mit der Funktion <strong>socket_last_error()</strong> abgefragt werden. Dieser Fehlercode
        kann an die Funktion <strong>socket_strerror()</strong> übergeben werden, um eine textuelle Beschreibung des
        Fehlers zu erhalten.

<comment>See Also:</comment>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_clear_error
type: function
doc:
<comment>Description:</comment>
  Löscht entweder einen Fehler oder den letzten Fehlercode eines Sockets
  
  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.

<comment>Param:</comment>
  <info>Socket|null</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_close
type: function
doc:
<comment>Description:</comment>
  Schließt eine Socket-Instanz
  
  <strong>socket_close()</strong> schließt die <class>Socket</class>-Instanz, die durch <strong>$socket</strong> gegeben ist.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_strerror()</strong>


id: socket_cmsg_space
type: function
doc:
<comment>Description:</comment>
  Calculate message buffer size
  
  Calculates the size of the buffer that should be allocated for receiving the ancillary data.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>int</info>  <strong>$level</strong>  
  <info>int</info>  <strong>$type</strong>   

<comment>Return:</comment>
  <info>int|null</info>  

<comment>See Also:</comment>
   * <strong>socket_recvmsg()</strong>
   * <strong>socket_sendmsg()</strong>


id: socket_connect
type: function
doc:
<comment>Description:</comment>
  Baut eine Verbindung über einen Socket auf
  
  Baut über die <class>Socket</class>-Instanz <strong>$socket</strong>, die mittels <strong>socket_create()</strong> erzeugt worden sein muss, eine
  Verbindung zu <strong>$address</strong> auf.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>   Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> erzeugt wurde.
  <info>string</info>    <strong>$address</strong>  Der Parameter <strong>$address</strong> ist entweder eine IPv4-Adresse in Punktnotation (z. B.
                      <return>127.0.0.1</return>), falls <strong>$socket</strong> zur <info>AF_INET</info>-Familie gehört, oder eine gültige
                      IPv6-Adresse (z. B. <return>::1</return>), falls die IPv6-Unterstützung aktiviert ist und
                      <strong>$socket</strong> zur <info>AF_INET6</info>-Familie gehört, oder der Pfadname eines Unix-Domain
                      socket, falls der Socket zur <info>AF_UNIX</info>-Familie gehört.
  <info>int|null</info>  <strong>$port</strong>     Der Parameter <strong>$port</strong> wird nur benutzt und ist dann zwingend erforderlich, wenn
                      eine Verbindung zu einem <info>AF_INET</info>- oder einem <info>AF_INET6</info>-Socket aufgebaut wird.
                      Er gibt an, zu welchem Port des entfernten Hosts eine Verbindung hergestellt
                      werden soll.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben. Der Fehlercode kann
        mit der Funktion <strong>socket_last_error()</strong> ermittelt werden. Dieser Fehlercode kann an die
        Funktion <strong>socket_strerror()</strong> übergeben werden, um eine textuelle Beschreibung des Fehlers zu
        erhalten.
        
        Falls der Socket nicht blockiert ist, gibt diese Funktion <info>false</info> sowie die Fehlermeldung
        <return>Operation now in progress</return> zurück.

<comment>See Also:</comment>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_create
type: function
doc:
<comment>Description:</comment>
  Erzeugt einen Socket (Endpunkt für die Kommunikation)
  
  Erzeugt eine <class>Socket</class>-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.

<comment>Param:</comment>
  <info>int</info>  <strong>$domain</strong>    Der <strong>$domain</strong>-Parameter legt die Protokollfamilie fest, die für die Kommunikation
                  vom Socket benutzt wird.
  <info>int</info>  <strong>$type</strong>      Der Parameter <strong>$type</strong> bestimmt den Kommunikationstyp, den der Socket verwenden soll.
  <info>int</info>  <strong>$protocol</strong>  Der Parameter <strong>$protocol</strong> setzt das spezifische Protokoll innerhalb der angegebenen
                  <strong>$domain</strong>, 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
                  <strong>getprotobyname()</strong> übergeben wird. Wenn TCP oder UDP gewünscht werden, können auch
                  die entsprechenden Konstanten <info>SOL_TCP</info> und <info>SOL_UDP</info> benutzt werden.

<comment>Return:</comment>
  <info>Socket|false</info>  Bei Erfolg gibt <strong>socket_create()</strong> eine <class>Socket</class>-Instanz zurück, bei einem Fehler wird
                <info>false</info> zurückgegeben. Der aktuelle Fehlercode kann mit <strong>socket_last_error()</strong> ermittelt
                und an die Funktion <strong>socket_strerror()</strong> übergeben werden, um eine textuelle
                Beschreibing des Fehlers zu erhalten.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_create_listen
type: function
doc:
<comment>Description:</comment>
  Öffnet einen Socket, um Verbindungen über einem gegebenen Port aufzubauen
    
  
  <strong>socket_create_listen()</strong> erzeugt eine neue <class>Socket</class>-Instanz vom Typ <info>AF_INET</info>, 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.

<comment>Param:</comment>
  <info>int</info>  <strong>$port</strong>     Der Port, den alle Schnittstellen abhören.
  <info>int</info>  <strong>$backlog</strong>  Der Parameter <strong>$backlog</strong> gibt an, wie groß die Warteschlange mit wartenden
                 Verbindungen maximal werden darf. <info>SOMAXCONN</info> kann als <strong>$backlog</strong> übergeben werden.
                 Mehr Informationen hierzu finden Sie bei <strong>socket_listen()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  <strong>socket_create_listen()</strong> gibt bei Erfolg eine neue <class>Socket</class>-Instanz zurück oder <info>false</info>,
                falls ein Fehler aufgetreten ist. Der Fehlercode kann mit der Funktion
                <strong>socket_last_error()</strong> abgefragt werden. Dieser Fehlercode kann an die Funktion
                <strong>socket_strerror()</strong> übergeben werden, um eine textuelle Beschreibung des Fehlers zu
                erhalten.

<comment>See Also:</comment>
   * <strong>socket_create()</strong>
   * <strong>socket_create_pair()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_create_pair
type: function
doc:
<comment>Description:</comment>
  Erzeugt ein Paar nicht zu unterscheidender Sockets und speichert sie in einem Array
  
  <strong>socket_create_pair()</strong> erzeugt zwei nicht unterscheidbare, verbundene Sockets und speichert sie im
  Array <strong>$pair</strong>. Diese Funktion wird allgemein bei der Interprozesskommunikation (IPC) verwendet.

<comment>Param:</comment>
  <info>int</info>    <strong>$domain</strong>    Der Parameter <strong>$domain</strong> bestimmt die Protokollfamilie, die von den Sockets benutzt
                    wird. Eine komplette Liste finden Sie bei der Funktion <strong>socket_create()</strong>.
  <info>int</info>    <strong>$type</strong>      Der Parameter <strong>$type</strong> bestimmt den Kommunikationstyp, den die Sockets verwenden
                    sollen. Eine komplette Liste finden Sie bei der Funktion <strong>socket_create()</strong>.
  <info>int</info>    <strong>$protocol</strong>  Der Parameter <strong>$protocol</strong> legt das spezifische Protokoll fest, das vom
                    zurückgegebenen Socket für die Kommunikation innerhalb der angegebenen <strong>$domain</strong>
                    benutzt werden soll. Der passende Wert kann ermittelt werden, indem der Name an
                    die Funktion <strong>getprotobyname()</strong> übergeben wird. Wenn TCP oder UDP gewünscht
                    werden, können auch die entsprechenden Konstanten <info>SOL_TCP</info> oder <info>SOL_UDP</info> benutzt
                    werden.
                    
                    Eine vollständige Liste aller unterstützter Protokolle finden Sie bei der
                    Funktion <strong>socket_create()</strong>.
  <info>array</info>  <strong>$pair</strong>      Referenz auf das Array, in das die beiden <class>Socket</class>-Instanzen eingefügt werden.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_create()</strong>
   * <strong>socket_create_listen()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_export_stream
type: function
doc:
<comment>Description:</comment>
  Export a socket into a stream that encapsulates a socket
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  

<comment>Return:</comment>
  <info>resource|false</info>  Return resourceBei einem Fehler wird <info>false</info> zurückgegeben..


id: socket_get_option
type: function
doc:
<comment>Description:</comment>
  Liefert die Socket-Optionen für einen Socket
  
  <strong>socket_get_option()</strong> gibt den Wert der Option zurück, die im Parameter <strong>$option</strong> für den Socket
  <strong>$socket</strong> angegeben wurde.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit der Funktion <strong>socket_create()</strong> oder <strong>socket_accept()</strong>
                   erzeugt wurde.
  <info>int</info>     <strong>$level</strong>   Der Parameter <strong>$level</strong> enthält die Protokollebene, für die die Option gilt.
                   Beispiel: Um Optionen auf der Socketebene abzufragen, würde <strong>$level</strong> den Wert
                   <info>SOL_SOCKET</info> enthalten. Andere Ebenen, etwa <info>TCP</info>, können abgefragt werden, indem man
                   die Protokollnummer dieser Ebene angibt. Protokollnummern können mit einem Aufruf
                   von <strong>getprotobyname()</strong> ermittelt werden.
  <info>int</info>     <strong>$option</strong>  Gibt an, ob der <strong>$socket</strong> einen Aufruf von <strong>socket_close()</strong> 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 <strong>socket_close()</strong> 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 <strong>socket_close()</strong> 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 <strong>socket_close()</strong>
                   fehl und gibt einen Fehler zurück.

<comment>Return:</comment>
  <info>array|int|false</info>  Gibt den Wert der angegebenen Option zurück. Bei einem Fehler wird <info>false</info>
                   zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_create_listen()</strong>
   * <strong>socket_set_option()</strong>


id: socket_get_status
type: function
doc:
<comment>Description:</comment>
  Alias von stream_get_meta_data
  
  Diese Funktion ist ein Alias für:  <strong>stream_get_meta_data()</strong>.


id: socket_getopt
type: function
doc:
<comment>Description:</comment>
  Alias von socket_get_option
  
  Diese Funktion ist ein Alias für:  <strong>socket_get_option()</strong>.


id: socket_getpeername
type: function
doc:
<comment>Description:</comment>
  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
    
  
  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.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong> erzeugt wurde.
  <info>string</info>  <strong>$address</strong>  Falls der angegebene Socket vom Typ <info>AF_INET</info> oder <info>AF_INET6</info> ist, gibt
                    <strong>socket_getpeername()</strong> die IP-Addresse des entfernten Peers in der passenden
                    Notation (z. B. <return>127.0.0.1</return> oder <return>fe80::1</return>) im Parameter <strong>$address</strong> zurück. Falls der
                    optionale Parameter <strong>$port</strong> angegeben ist, wird der zugehörige Port ebenfalls
                    zurückgegeben.
                    
                    Falls der angegebene Socket vom Typ <info>AF_UNIX</info> ist, gibt <strong>socket_getpeername()</strong> den
                    Pfad des Unix-Dateisystems (z. B. <return>/var/run/daemon.sock</return>) in dem Parameter
                    <strong>$address</strong> zurück.
  <info>int</info>     <strong>$port</strong>     Falls angegeben, wird hier der mit <strong>$address</strong> verknüpfte Port zurückgegeben.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben. <strong>socket_getpeername()</strong>
        kann aber auch <info>false</info> zurückgeben, falls der Socket weder vom Typ <info>AF_INET</info> noch vom Typ
        <info>AF_INET6</info> oder <info>AF_UNIX</info> ist. In diesem Fall wird der letzte Fehlercode für den Socket nicht
        aktualisiert.

<comment>See Also:</comment>
   * <strong>socket_getsockname()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_getsockname
type: function
doc:
<comment>Description:</comment>
  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
    
  
  <strong>socket_getpeername()</strong> sollte nicht mit <info>AF_UNIX</info>-Sockets verwendet werden, die mit <strong>socket_connect()</strong>
  erzeugt wurden. Nur Sockets, die mit <strong>socket_accept()</strong> erzeugt wurden oder primäre Server-Sockets,
  nach einem Aufruf von <strong>socket_bind()</strong>, geben brauchbare Ergebnisse zurück.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong> erzeugt wurde.
  <info>string</info>  <strong>$address</strong>  Falls der angegebene Socket vom Typ <info>AF_INET</info> oder <info>AF_INET6</info> ist, gibt
                    <strong>socket_getsockname()</strong> die IP-Addresse des lokalen Rechners im Parameter <strong>$address</strong>
                    in Punktnotation zurück (z. B. <return>127.0.0.1</return> oder <return>fe80::1</return>). Falls der optionale
                    Parameter <strong>$port</strong> angegeben ist, wird der zugehörige Port ebenfalls zurückgegeben.
                    
                    Falls der angegebene Socket vom Typ <info>AF_UNIX</info> ist, gibt <strong>socket_getsockname()</strong> den
                    Pfad des Unix-Dateisystems (z. B. <return>/var/run/daemon.sock</return>) im Parameter <strong>$address</strong>
                    zurück.
  <info>int</info>     <strong>$port</strong>     Falls angegeben, wird hier der mit <strong>$address</strong> verknüpfte Port zurückgegeben.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben. <strong>socket_getsockname()</strong>
        kann auch <info>false</info> zurückgeben, wenn der Socket weder vom Typ <info>AF_INET</info> noch vom Typ <info>AF_INET6</info>
        oder <info>AF_UNIX</info> ist. In diesem Fall wird der letzte Socket-Fehlercode nicht aktualisiert.

<comment>See Also:</comment>
   * <strong>socket_getpeername()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_import_stream
type: function
doc:
<comment>Description:</comment>
  Import a stream
  
  Imports a stream that encapsulates a socket into a socket extension resource.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The stream resource to import.

<comment>Return:</comment>
  <info>Socket|false</info>  Returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>stream_socket_server()</strong>


id: socket_last_error
type: function
doc:
<comment>Description:</comment>
  Gibt den letzten Fehler zurück, der an einem Socket aufgetreten ist
  
  Wenn eine <class>Socket</class>-Instanz an diese Funktion übergeben wird, wird der letzte Fehler, der an diesem
  bestimmten Socket aufgetreten ist, zurückgegeben. Falls <strong>$socket</strong> <info>null</info> ist, wird der Fehlercode der
  letzten fehlgeschlagenen Socket-Funktion zurückgegeben. Letzteres ist besonders hilfreich für
  Funktionen wie <strong>socket_create()</strong>, die bei einem Fehler keinen Socket zurückgibt, oder
  <strong>socket_select()</strong>, die aus anderen Gründen, die nichts mit einem bestimmten Socket zu tun haben,
  fehlschlagen kann. Der Fehlercode kann an die Funktion <strong>socket_strerror()</strong> übergeben werden, die
  eine textuelle Beschreibung dieses Fehlercodes zurückgibt.
  
  Trat kein Fehler auf, oder der Fehler wurde per <strong>socket_clear_error()</strong> gelöscht, dann gibt die
  Funktion <return>0</return> zurück.

<comment>Param:</comment>
  <info>Socket|null</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>int</info>  Diese Funktion gibt den Fehlercode eines Socket-Fehlers zurück.


id: socket_listen
type: function
doc:
<comment>Description:</comment>
  Hört einen Socket nach Verbindungsanforderungen ab
  
  Nachdem der Socket <strong>$socket</strong> mit <strong>socket_create()</strong> erzeugt und mit <strong>socket_bind()</strong> mit einem Namen
  verknüpft wurde, wird er angewiesen, nach hereinkommenden Verbindungsanforderungen an dem Socket
  <strong>$socket</strong> zu horchen.
  
  <strong>socket_listen()</strong> kann nur zusammen mit Sockets vom Typ <info>SOCK_STREAM</info> oder <info>SOCK_SEQPACKET</info> verwendet
  werden.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_addrinfo_bind()</strong> erzeugt
                    wurde.
  <info>int</info>     <strong>$backlog</strong>  Maximal werden <strong>$backlog</strong> 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 <return>ECONNREFUSED</return>. Oder, falls das zugrundeliegende Protokoll eine
                    wiederholte Übertragung unterstützt, wird die Anforderung ignoriert, so dass
                    weitere Verbindungsversuche möglicherweise erfolgreich sind.
                    
                    Die maximale Anzahl der im Parameter <strong>$backlog</strong> angegebenen Einträge der
                    Warteschlange hängt entscheidend vom darunterliegenden Betriebssystem ab. Auf
                    Linux-Systemen wird die Zahl stillschweigend auf <info>SOMAXCONN</info> begrenzt. Wenn auf
                    Win32-Systemen <info>SOMAXCONN</info> 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.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben. Der Fehlercode kann
        mit der Funktion <strong>socket_last_error()</strong> abgefragt werden. Dieser Fehlercode kann an die
        Funktion <strong>socket_strerror()</strong> übergeben werden, um eine textuelle Beschreibung des Fehlers zu
        erhalten.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_strerror()</strong>
   * <strong>socket_addrinfo_bind()</strong>


id: socket_read
type: function
doc:
<comment>Description:</comment>
  Liest höchstens die angegebene Anzahl Bytes von einem Socket
  
  Die Funktion <strong>socket_read()</strong> liest von der <class>Socket</class>-Instanz <strong>$socket</strong>, die entweder mit <strong>socket_create()</strong>
  oder mit <strong>socket_accept()</strong> erzeugt wurde.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong> erzeugt wurde.
  <info>int</info>     <strong>$length</strong>  Die Anzahl Bytes, die höchstens gelesen werden, wird in dem Parameter <strong>$length</strong>
                   angegeben. Anderenfalls können Sie mit <info>\r</info>, <info>\n</info>, oder <info>\0</info> den Lesevorgang beenden
                   (dies ist abhängig von dem Parameter <strong>$mode</strong>, siehe weiter unten).
  <info>int</info>     <strong>$mode</strong>    Der optionale Parameter <strong>$mode</strong> ist eine vordefinierte Konstante: <info>PHP_BINARY_READ</info>
                   (Standardwert) - benutzt die Systemfunktion <return>recv()</return>. Das ist sicher zum Lesen von
                   Binärdaten. <info>PHP_NORMAL_READ</info> - Lesevorgänge werden bei <return>\n</return> oder <return>\r</return> beendet.
                   
                   <info>PHP_BINARY_READ</info> (Standardwert) - benutzt die Systemfunktion <return>recv()</return>. Das ist
                   sicher zum Lesen von Binärdaten.
                   
                   <info>PHP_NORMAL_READ</info> - Lesevorgänge werden bei <return>\n</return> oder <return>\r</return> beendet.

<comment>Return:</comment>
  <info>string|false</info>  <strong>socket_read()</strong> gibt bei Erfolg die Daten als String zurück oder <info>false</info>, falls ein
                Fehler aufgetreten ist (einschließlich, wenn der entfernte Host die Verbindung
                abgebrochen hat). Der Fehlercode kann mit <strong>socket_last_error()</strong> abgefragt werden.
                Dieser Fehlercode kann an die Funktion <strong>socket_strerror()</strong> übergeben werden, um eine
                textuelle Beschreibung des Fehlers zu erhalten.
                
                <strong>socket_read()</strong> gibt einen leeren String ("") zurück, wenn es keine Daten mehr zu
                lesen gibt.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>
   * <strong>socket_write()</strong>


id: socket_recv
type: function
doc:
<comment>Description:</comment>
  Empfängt Daten von einem verbundenen Socket
  
  Die Funktion <strong>socket_recv()</strong> empfängt <strong>$length</strong> Bytes Daten in <strong>$data</strong> von <strong>$socket</strong>. <strong>socket_recv()</strong> 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.
  
  <strong>$data</strong> wird als Referenz übergeben, daher muss er als Variable in der Liste der Argumente angegeben
  werden. Gelesene Daten von <strong>$socket</strong> durch <strong>socket_recv()</strong> werden in <strong>$data</strong> zurückgegeben.

<comment>Param:</comment>
  <info>Socket</info>       <strong>$socket</strong>  Der <strong>$socket</strong> muss eine <class>Socket</class>-Instanz sein, die zuvor mit socket_create()
                        erzeugt wurde.
  <info>string|null</info>  <strong>$data</strong>    Empfangene Daten werden in die Variable geschrieben, die durch <strong>$data</strong>
                        spezifiziert ist. Tritt ein Fehler auf, wird die Verbindung zurückgesetzt
                        oder, wenn keine Daten verfügbar sind, wird <strong>$data</strong> auf <info>null</info> gesetzt.
  <info>int</info>          <strong>$length</strong>  Maximal <strong>$length</strong> Bytes werden von dem entfernten System abgerufen.
  <info>int</info>          <strong>$flags</strong>   Der Wert von <strong>$flags</strong> kann jede beliebige Kombination der folgenden Flags
                        sein, verknüpft mit dem binären ODER- (<return>|</return>) Operator.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_recv()</strong> gibt die Anzahl der empfangenen Bytes zurück oder <info>false</info>, falls ein Fehler
             auftrat. Der aktuelle Fehlercode kann mit <strong>socket_last_error()</strong> abgefragt werden. Dieser
             Fehlercode kann an die Funktion <strong>socket_strerror()</strong> übergeben werden, um eine textuelle
             Beschreibung des Fehlers zu erhalten.


id: socket_recvfrom
type: function
doc:
<comment>Description:</comment>
  Empfängt Daten von einem Socket, egal, ob verbindungsorientiert oder nicht
  
  Die Funktion <strong>socket_recvfrom()</strong> empfängt über den Socket <strong>$socket</strong> <strong>$length</strong> Bytes von <strong>$address</strong> über
  den Port <strong>$port</strong> (falls der Socket nicht vom Typ <info>AF_UNIX</info> ist) und liest sie in den Puffer <strong>$data</strong> ein.
  <strong>socket_recvfrom()</strong> 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 <strong>$address</strong> und <strong>$port</strong> müsssen als Referenz übergeben werden. Wenn der Socket
  verbindungslos ist, wird <strong>$address</strong> auf die Internet-Protokolladresse des entfernten Host oder auf
  den Pfad zum UNIX-Socket gesetzt. Ist der Socket verbindungsorientiert, ist <strong>$address</strong> <info>null</info>.
  Zusätzlich enthält der Parameter <strong>$port</strong> den Port des entfernten Host, falls es sich um einen nicht
  verbundenen <info>AF_INET</info> oder <info>AF_INET6</info>-Socket handelt.
  
  Diese Funktion ist
  binärsicher.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   <strong>$socket</strong> muss eine <class>Socket</class>-Instanz sein, die zuvor mit <strong>socket_create()</strong> erzeugt
                    wurde.
  <info>string</info>  <strong>$data</strong>     Die empfangenen Daten werden in die Variable <strong>$data</strong> eingelesen.
  <info>int</info>     <strong>$length</strong>   Bis zu <strong>$length</strong> Bytes werden vom entfernten Host gelesen.
  <info>int</info>     <strong>$flags</strong>    Der Wert von <strong>$flags</strong> kann eine beliebige Kombination der folgenden Flags sein,
                    die mit dem binären OR (<return>|</return>) verknüpft werden.
  <info>string</info>  <strong>$address</strong>  Wenn der Socket vom Typ <info>AF_UNIX</info> ist, enthält <strong>$address</strong> den Pfad zu einer Datei.
                    Anderenfalls, bei nicht verbundenen Sockets, enthält <strong>$address</strong> die IP-Adresse des
                    entfernten Hosts oder <info>null</info>, falls der Socket verbindungsorientiert ist.
  <info>int</info>     <strong>$port</strong>     Dieses Argument gilt nur für Sockets vom Typ <info>AF_INET</info> und <info>AF_INET6</info> und gibt den
                    entfernten Port an, über den Daten empfangen werden. Falls der Socket
                    verbindungsorientiert ist, ist <strong>$port</strong> <info>null</info>.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_recvfrom()</strong> gibt die Anzahl der empfangenen Bytes zurück oder <info>false</info>, falls ein
             Fehler auftrat. Der aktuelle Fehlercode kann mit <strong>socket_last_error()</strong> abgefragt werden.
             Dieser Fehlercode kann an die Funktion <strong>socket_strerror()</strong> übergeben werden, um eine
             textuelle Beschreibung des Fehlers zu erhalten.

<comment>See Also:</comment>
   * <strong>socket_recv()</strong>
   * <strong>socket_send()</strong>
   * <strong>socket_sendto()</strong>
   * <strong>socket_create()</strong>


id: socket_recvmsg
type: function
doc:
<comment>Description:</comment>
  Read a message
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   
  <info>array</info>   <strong>$message</strong>  
  <info>int</info>     <strong>$flags</strong>    

<comment>Return:</comment>
  <info>int|false</info>  

<comment>See Also:</comment>
   * <strong>socket_sendmsg()</strong>
   * <strong>socket_cmsg_space()</strong>


id: socket_select
type: function
doc:
<comment>Description:</comment>
  Führt einen select()-Systemaufruf auf den gegebenen Socket-Arrays aus,
     wobei ein Zeitlimit bestimmt wird
    
  
  <strong>socket_select()</strong> 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.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$read</strong>          Die Sockets, die im <strong>$read</strong>-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 <strong>socket_read()</strong> einen leeren
                             String zurück.)
  <info>array|null</info>  <strong>$write</strong>         Die Sockets, die im <strong>$write</strong>-Array aufgelistet sind, werden daraufhin
                             überwacht, ob ein Schreibvorgang nicht blockiert würde.
  <info>array|null</info>  <strong>$except</strong>        Die Sockets, die im <strong>$except</strong>-Array aufgelistet sind, werden auf
                             Ausnahmen überwacht.
  <info>int|null</info>    <strong>$seconds</strong>       <strong>$seconds</strong> und <strong>$microseconds</strong> bilden zusammen den <return>timeout</return>-Parameter. Der
                             <return>timeout</return> ist eine obere Schranke für die Zeit, die verstreichen kann,
                             bis <strong>socket_select()</strong> zurückkehrt. <strong>$seconds</strong> kann 0 sein, wodurch
                             <strong>socket_select()</strong> sofort zurückkehrt. Dies ist nützlich beim Polling.
                             Falls der Parameter <strong>$seconds</strong> <info>null</info> ist (kein Timeout), kann
                             <strong>socket_select()</strong> unendlich lange blockieren.
  <info>int</info>         <strong>$microseconds</strong>  

<comment>Return:</comment>
  <info>int|false</info>  Bei Erfolg gibt <strong>socket_select()</strong> 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 <info>false</info> zurückgegeben. Der Fehlercode kann dann mit <strong>socket_last_error()</strong> abgefragt
             werden.
             
             Wenn ein Fehler aufgespürt werden soll, muss unbedingt der Operator <return>===</return> benutzt werden.
             Weil <strong>socket_select()</strong> auch 0 zurückgeben kann, wird der Vergleich mit <return>==</return> sonst zu <info>true</info>
             ausgewertet. Rückgaben von <strong>socket_select()</strong> verstehen
             ]]>

<comment>See Also:</comment>
   * <strong>socket_read()</strong>
   * <strong>socket_write()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_send
type: function
doc:
<comment>Description:</comment>
  Sendet Daten an einen verbundenen Socket
  
  Die Funktion <strong>socket_send()</strong> sendet <strong>$length</strong> Bytes aus dem Puffer <strong>$data</strong> an den Socket <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong> erzeugt wurde.
  <info>string</info>  <strong>$data</strong>    Ein Puffer, der die Daten enthält, die an den entfernten Host gesendet werden.
  <info>int</info>     <strong>$length</strong>  Die Anzahl Bytes, die aus dem Puffer <strong>$data</strong> an den entfernten Host gesendet
                   werden.
  <info>int</info>     <strong>$flags</strong>   Der Parameter <strong>$flags</strong> kann beliebige Kombinationen der folgenden Flags enthalten,
                   die mit einem binären OR (<return>|</return>) verknüpft werden. Mögliche Werte von <strong>$flags</strong><info>MSG_OOB</info>
                   Sende OOB-Daten (out-of-band). <info>MSG_EOR</info> Setze eine Ende-Marke für den Datensatz.
                   Die gesendeten Daten beenden die Übertragung. <info>MSG_EOF</info> 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. <info>MSG_DONTROUTE</info>
                   Umgehe das Routing, sende direkt über die Schnittstelle.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_send()</strong> gibt die Anzahl der gesendeten Bytes zurück oder <info>false</info>, falls ein Fehler
             auftrat.

<comment>See Also:</comment>
   * <strong>socket_sendto()</strong>


id: socket_sendmsg
type: function
doc:
<comment>Description:</comment>
  Send a message
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   
  <info>array</info>   <strong>$message</strong>  
  <info>int</info>     <strong>$flags</strong>    

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of bytes sent, Bei einem Fehler wird <info>false</info> zurückgegeben..

<comment>See Also:</comment>
   * <strong>socket_recvmsg()</strong>
   * <strong>socket_cmsg_space()</strong>


id: socket_sendto
type: function
doc:
<comment>Description:</comment>
  Sendet eine Nachricht an einen Socket, egal ob dieser verbunden ist oder nicht
    
  
  Die Funktion <strong>socket_sendto()</strong> sendet <strong>$length</strong> Bytes aus dem Puffer <strong>$data</strong> über den Port <strong>$port</strong> an den
  Socket <strong>$socket</strong> mit der Adresse <strong>$address</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>   Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> erzeugt wurde.
  <info>string</info>    <strong>$data</strong>     Die Sendedaten werden aus dem Puffer <strong>$data</strong> gelesen.
  <info>int</info>       <strong>$length</strong>   Die Anzahl Bytes, die aus dem Puffer <strong>$data</strong> gesendet werden.
  <info>int</info>       <strong>$flags</strong>    Der Parameter <strong>$flags</strong> kann beliebige Kombinationen der folgenden Flags
                      enthalten, die mit einem binären OR (<return>|</return>) verknüpft werden. Mögliche Werte von
                      <strong>$flags</strong><info>MSG_OOB</info> Sende OOB (out-of-band) Daten. <info>MSG_EOR</info> Setze eine Ende-Marke für
                      den Datensatz. Die gesendeten Daten beenden die Übertragung. <info>MSG_EOF</info> 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. <info>MSG_DONTROUTE</info> Umgehe das Routing; sende direkt über die
                      Schnittstelle.
  <info>string</info>    <strong>$address</strong>  Die IP-Adresse des enfernten Hosts.
  <info>int|null</info>  <strong>$port</strong>     <strong>$port</strong> ist die Portnummer des entfernten Rechners, an den die Daten gesendet
                      werden.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_sendto()</strong> gibt die Anzahl der an den entfernten Host gesendeten Bytes zurück oder
             <info>false</info>, falls ein Fehler auftrat.

<comment>See Also:</comment>
   * <strong>socket_send()</strong>


id: socket_set_block
type: function
doc:
<comment>Description:</comment>
  Setzt einen Socket auf den blockieren-Modus
  
  Die Funktion <strong>socket_set_block()</strong> entfernt das Flag <info>O_NONBLOCK</info> vom Socket <strong>$socket</strong>.
  
  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.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_set_nonblock()</strong>
   * <strong>socket_set_option()</strong>


id: socket_set_blocking
type: function
doc:
<comment>Description:</comment>
  Alias von stream_set_blocking
  
  Diese Funktion ist ein Alias für:  <strong>stream_set_blocking()</strong>.


id: socket_set_nonblock
type: function
doc:
<comment>Description:</comment>
  Setzt den nonblocking-Modus für den Dateideskriptor fd
  
  Die Funktion <strong>socket_set_nonblock()</strong> setzt das Flag <info>O_NONBLOCK</info> für den Socket <strong>$socket</strong>.
  
  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.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong> erzeugt wurde.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_set_block()</strong>
   * <strong>socket_set_option()</strong>
   * <strong>stream_set_blocking()</strong>


id: socket_set_option
type: function
doc:
<comment>Description:</comment>
  Setzt die Optionen für einen Socket
  
  Mit <strong>socket_set_option()</strong> wird die Option, die mit <strong>$option</strong> angegeben wurde, auf der Protokollebene
  <strong>$level</strong> für den Socket <strong>$socket</strong> auf den Wert gesetzt, der in <strong>$value</strong> übergeben wurde.

<comment>Param:</comment>
  <info>Socket</info>            <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> oder <strong>socket_accept()</strong>
                             erzeugt wurde.
  <info>int</info>               <strong>$level</strong>   Der Parameter <strong>$level</strong> gibt die Protokollebene an, auf der diese Option
                             gilt. Um beispielsweise Optionen auf dem Socket-Level zu setzen, würde
                             man den Parameter <strong>$level</strong> auf den Wert <info>SOL_SOCKET</info> setzen. Andere Ebenen,
                             wie etwa TCP können benutzt werden, indem man die Protokollnummer
                             dieser Ebene benutzt. Protokollnummern erhält man mit der Funktion
                             <strong>getprotobyname()</strong>.
  <info>int</info>               <strong>$option</strong>  Es sind dieselben Socket-Optionen verfügbar, wie bei der Funktion
                             <strong>socket_get_option()</strong> beschrieben.
  <info>array|string|int</info>  <strong>$value</strong>   Der Wert der Option.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_create()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_strerror()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_get_option()</strong>


id: socket_set_timeout
type: function
doc:
<comment>Description:</comment>
  Alias von stream_set_timeout
  
  Diese Funktion ist ein Alias für:  <strong>stream_set_timeout()</strong>.


id: socket_setopt
type: function
doc:
<comment>Description:</comment>
  Alias von socket_set_option
  
  Diese Funktion ist ein Alias für:  <strong>socket_set_option()</strong>.


id: socket_shutdown
type: function
doc:
<comment>Description:</comment>
  Schließt einen Socket der zum Senden, Empfangen oder beidem geöffnet wurde
    
  
  Mit <strong>socket_shutdown()</strong> können Sie die Übertragung hereinkommender, ausgehender oder aller Daten
  (die Standardeinstellung) über diesen <strong>$socket</strong> abbrechen.
  
  Zugehörige Puffer werden geleert, oder auch nicht.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Eine <class>Socket</class>-Instanz, die mit <strong>socket_create()</strong> erzeugt wurde.
  <info>int</info>     <strong>$mode</strong>    Der Parameter <strong>$mode</strong> kann folgende Werte annehmen: Mögliche Werte für <strong>$mode</strong><return>0</return>
                   Schließe den Socket für hereinkommende Daten (Lesen) <return>1</return> Schließe den Socket für
                   ausgehende Daten (Schreiben) <return>2</return> Schließe den Socket in beiden Richtungen

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: socket_strerror
type: function
doc:
<comment>Description:</comment>
  Gibt einen String zurück, der einen Socket-Fehler beschreibt
  
  <strong>socket_strerror()</strong> nimmt im Parameter <strong>$error_code</strong> einen Fehlercode, der von der Funktion
  <strong>socket_last_error()</strong> zurückgegeben wurde, entgegen und gibt seinerseits den entsprechenden
  Erklärungstext aus.
  
  Obwohl die Fehlermeldungen der Socket-Erweiterung englisch sind, erscheinen die Systemmeldungen,
  die mit dieser Funktion abgerufen werden, in der Sprache der aktuellen Locale-Einstellung
  (<info>LC_MESSAGES</info>).

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  Ein gültiger Fehlercode eines Socket-Fehlers, ähnlich der Funktion
                    <strong>socket_last_error()</strong>.

<comment>Return:</comment>
  <info>string</info>  Zurückgegeben wird die Fehlermeldung, die dem Fehlercode <strong>$error_code</strong> entspricht.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>


id: socket_write
type: function
doc:
<comment>Description:</comment>
  Schreibt in einen Socket
  
  Die Funktion <strong>socket_write()</strong> schreibt aus dem Puffer <strong>$data</strong> in den Socket <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>  
  <info>string</info>    <strong>$data</strong>    Der Puffer, dessen Inhalt geschrieben werden soll.
  <info>int|null</info>  <strong>$length</strong>  Mit dem optionalen Parameter <strong>$length</strong> 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.

<comment>Return:</comment>
  <info>int|false</info>  Gibt die Anzahl der erfolgreich in den Socket geschriebenen Bytes zurück. Bei einem
             Fehler wird <info>false</info> zurückgegeben.. Der Fehlercode kann mit der Funktion
             <strong>socket_last_error()</strong> ermittelt werden. Dieser Fehlercode kann an die Funktion
             <strong>socket_strerror()</strong> übergeben werden, um eine textuelle Beschreibung des Fehlers zu
             erhalten.
             
             Es ist durchaus möglich, dass <strong>socket_write()</strong> den Wert 0 zurckgibt, was bedeutet, dass
             kein einziges Byte geschrieben wurde. Vergewissern Sie sich, dass Sie den Operator <return>===</return>
             benutzen, um im Falle eines Fehlers auf <info>false</info> zu testen.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_read()</strong>
   * <strong>socket_strerror()</strong>


id: socket_wsaprotocol_info_export
type: function
doc:
<comment>Description:</comment>
  Exports the WSAPROTOCOL_INFO Structure
  
  Exports the <return>WSAPROTOCOL_INFO</return> structure into shared memory and returns an identifier to be used
  with <strong>socket_wsaprotocol_info_import()</strong>. The exported ID is only valid for the given <strong>$process_id</strong>.
  
  This function is available only on Windows.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>      A <class>Socket</class> instance.
  <info>int</info>     <strong>$process_id</strong>  The ID of the process which will import the socket.

<comment>Return:</comment>
  <info>string|false</info>  Returns an identifier to be used for the import, Bei einem Fehler wird <info>false</info>
                zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_wsaprotocol_info_import()</strong>
   * <strong>socket_wsaprotocol_info_release()</strong>


id: socket_wsaprotocol_info_import
type: function
doc:
<comment>Description:</comment>
  Imports a Socket from another Process
  
  Imports a socket which has formerly been exported from another process.
  
  This function is available only on Windows.

<comment>Param:</comment>
  <info>string</info>  <strong>$info_id</strong>  The ID which has been returned by a former call to
                    <strong>socket_wsaprotocol_info_export()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  Returns a <class>Socket</class> instance on success, Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_wsaprotocol_info_export()</strong>


id: socket_wsaprotocol_info_release
type: function
doc:
<comment>Description:</comment>
  Releases an exported WSAPROTOCOL_INFO Structure
  
  Releases the shared memory corresponding to the given <strong>$info_id</strong>.
  
  This function is available only on Windows.

<comment>Param:</comment>
  <info>string</info>  <strong>$info_id</strong>  The ID which has been returned by a former call to
                    <strong>socket_wsaprotocol_info_export()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>socket_wsaprotocol_info_export()</strong>


id: sodium_add
type: function
doc:
<comment>Description:</comment>
  Addition großer Zahlen
  
  Diese Funktion addiert den Parameter <strong>$string2</strong> zu <strong>$string1</strong> hinzu und überschreibt den in <strong>$string1</strong>
  gespeicherten Wert. Diese Funktion geht davon aus, dass beide Parameter binäre Zeichenketten
  (Strings) sind, die vorzeichenlose Ganzzahlen in Little-Endian-Byte-Reihenfolge darstellen.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Eine Zeichenkette, die eine vorzeichenlose Ganzzahl beliebiger Länge in
                    Little-Endian-Byte-Reihenfolge darstellt. Dieser Parameter wird als Referenz
                    übergeben und enthält die Summe der beiden Parameter.
  <info>string</info>  <strong>$string2</strong>  Eine Zeichenkette, die eine vorzeichenlose Ganzzahl beliebiger Länge in
                    Little-Endian-Byte-Reihenfolge darstellt.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: sodium_base642bin
type: function
doc:
<comment>Description:</comment>
  Dekodiert eine Base64-kodierte Zeichenkette in das Binärformat.
  
  Konvertiert eine Base64-kodierte Zeichenkette in das Binärformat. Anders als <strong>base64_decode()</strong> und
  <strong>sodium_base642bin()</strong> ist die Funktion zeitkonstant (eine Eigenschaft, welche für jeden Programmcode
  wichtig ist, der kryptographische Eingaben wie Klartexte oder Schlüssel verarbeitet) und
  unterstützt mehrere Zeichensätze.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  <info>string</info>; Kodierte Zeichenfolge.
  <info>int</info>     <strong>$id</strong>      <info>SODIUM_BASE64_VARIANT_ORIGINAL</info> für die Standard-Base64-Kodierung (<return>A-Za-z0-9/\+</return>).
                   <info>SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING</info> für die Standard-Base64-Kodierung
                   (<return>A-Za-z0-9/\+</return>), ohne <return>=</return>-Auffüllzeichen. <info>SODIUM_BASE64_VARIANT_URLSAFE</info> für
                   URL-sichere (URL-safe) (<return>A-Za-z0-9\-_</return>) Base64-Kodierung.
                   <info>SODIUM_BASE64_VARIANT_URLSAFE</info> für URL-sichere (URL-safe) (<return>A-Za-z0-9\-_</return>)
                   Base64-Kodierung, ohne <return>=</return>-Auffüllzeichen.
  <info>string</info>  <strong>$ignore</strong>  Zeichen, die bei der Dekodierung ignoriert werden sollen (z. B. Leerzeichen).

<comment>Return:</comment>
  <info>string</info>  Dekodierte Zeichenkette.


id: sodium_bin2base64
type: function
doc:
<comment>Description:</comment>
  Kodiert eine binäre Zeichenkette mit Base64.
  
  Konvertiert eine Zeichenkette in eine Base64-kodierte Zeichenkette. Anders als <strong>base64_encode()</strong> und
  <strong>sodium_bin2base64()</strong> ist die Funktion zeitkonstant (eine Eigenschaft, welche für jeden Programmcode
  wichtig ist, der kryptographische Eingaben, wie Klartexte oder Schlüssel, verarbeitet) und
  unterstützt mehrere Zeichensätze.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Rohbinäre Zeichenfolge.
  <info>int</info>     <strong>$id</strong>      <info>SODIUM_BASE64_VARIANT_ORIGINAL</info> für die Standard-Base64-Kodierung (<return>A-Za-z0-9/\+</return>).
                   <info>SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING</info> für die Standard-Base64-Kodierung
                   (<return>A-Za-z0-9/\+</return>), ohne <return>=</return>-Auffüllzeichen. <info>SODIUM_BASE64_VARIANT_URLSAFE</info> für
                   URL-sichere (URL-safe) (<return>A-Za-z0-9\-_</return>) Base64-Kodierung.
                   <info>SODIUM_BASE64_VARIANT_URLSAFE</info> für URL-sichere (URL-safe) (<return>A-Za-z0-9\-_</return>)
                   Base64-Kodierung, ohne <return>=</return>-Auffüllzeichen.

<comment>Return:</comment>
  <info>string</info>  Base64-enkodierte Zeichenkette.


id: sodium_bin2hex
type: function
doc:
<comment>Description:</comment>
  Kodiert in Hexadezimal
  
  Konvertiert eine rohbinäre Zeichenkette in eine hexadezimal kodierte Zeichenkette. Anders als
  <strong>sodium_bin2hex()</strong> ist die Funktion zeitkonstant (eine Eigenschaft, welche für jeden Programmcode
  wichtig ist, der kryptographische Eingaben, wie Klartexte oder Schlüssel, verarbeitet).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Rohbinäre Zeichenfolge.

<comment>Return:</comment>
  <info>string</info>  Hexadezimal kodierte Zeichenkette.


id: sodium_compare
type: function
doc:
<comment>Description:</comment>
  Vergleicht große Zahlen
  
  Vergleicht zwei Zeichenketten, als ob sie beliebig lange, vorzeichenlose Little-Endian-Ganzzahlen
  wären, ohne dass eine Seitenkanalattacke möglich ist.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Linker Operand
  <info>string</info>  <strong>$string2</strong>  Rechter Operand

<comment>Return:</comment>
  <info>int</info>  Gibt <return>-1</return> zurück, wenn <strong>$string1</strong> kleiner als <strong>$string2</strong> ist.
       
       Gibt <return>1</return> zurück, wenn <strong>$string1</strong> größer als <strong>$string2</strong> ist.
       
       Gibt <return>0</return> zurück, wenn beide Zeichenketten identisch sind.


id: sodium_crypto_aead_aes256gcm_decrypt
type: function
doc:
<comment>Description:</comment>
  Überprüft und entschlüsselt eine Nachricht mit AES-256-GCM
  
  Überprüft und entschlüsselt eine Nachricht mit AES-256-GCM. Nur verfügbar, wenn
  <strong>sodium_crypto_aead_aes256gcm_is_available()</strong> <info>true</info> zurückgibt.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Muss das von der Funktion <strong>sodium_crypto_aead_aes256gcm_encrypt()</strong>
                            bereitgestellte Format haben (Chiffretext und Tag, verknüpft).
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 12
                            Bytes lang.
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Entschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Gibt im Erfolgsfall den Klartext zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: sodium_crypto_aead_aes256gcm_encrypt
type: function
doc:
<comment>Description:</comment>
  Verschlüsselt und authentifiziert eine Nachricht mit AES-256-GCM
  
  Verschlüsselt und authentifiziert eine Nachricht mit AES-256-GCM. Nur verfügbar, wenn
  <strong>sodium_crypto_aead_aes256gcm_is_available()</strong> <info>true</info> zurückgibt.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Der Klartext, welcher verschlüsselt werden soll.
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 12
                            Bytes lang.
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Verschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string</info>  Gibt den Chiffriertext und das Authentifizierungskennzeichen als rohbinäre Zeichenfolge
          zurück. (Format: Chiffriertext, dann Tag).


id: sodium_crypto_aead_aes256gcm_is_available
type: function
doc:
<comment>Description:</comment>
  Prüft, ob die Hardware AES256-GCM unterstützt
  
  Der Rückgabewert dieser Funktion hängt davon ab, ob die Hardware hardwarebeschleunigtes AES
  unterstützt oder nicht.

<comment>Return:</comment>
  <info>bool</info>  Gibt <info>true</info> zurück, wenn es ist sicher ist mit AES-256-GCM zu verschlüsseln, und <info>false</info> wenn
        nicht.


id: sodium_crypto_aead_aes256gcm_keygen
type: function
doc:
<comment>Description:</comment>
  Generiert einen zufälligen AES-256-GCM-Schlüssel
  
  Generiert einen zufälligen Schlüssel für die Nutzung von <strong>sodium_crypto_aead_aes256gcm_encrypt()</strong>
  und <strong>sodium_crypto_aead_aes256gcm_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Gibt einen 256-Bit-Zufallsschlüssel zurück.


id: sodium_crypto_aead_chacha20poly1305_decrypt
type: function
doc:
<comment>Description:</comment>
  Überprüft und entschlüsselt eine Nachricht mit ChaCha20-Poly1305
  
  Überprüft und entschlüsselt eine Nachricht mit ChaCha20-Poly1305.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Muss das von der Funktion <strong>sodium_crypto_aead_chacha20poly1305_encrypt()</strong>
                            bereitgestellte Format haben (Chiffretext und Tag, verknüpft).
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 8 Bytes
                            lang.
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Entschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Gibt im Erfolgsfall den Klartext zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: sodium_crypto_aead_chacha20poly1305_encrypt
type: function
doc:
<comment>Description:</comment>
  Verschlüsselt und authentifiziert eine Nachricht mit ChaCha20-Poly1305
  
  Verschlüsselt und authentifiziert eine Nachricht mit ChaCha20-Poly1305.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Der Klartext, welcher verschlüsselt werden soll.
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 8 Bytes
                            lang.
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Verschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string</info>  Gibt bei Erfolg den Chiffriertext und das Tag zurück. Bei einem Fehler wird <info>false</info>
          zurückgegeben.


id: sodium_crypto_aead_chacha20poly1305_ietf_decrypt
type: function
doc:
<comment>Description:</comment>
  Überprüft, ob der Chiffriertext ein gültiges Tag enthält
  
  Verschlüsselt und authentifiziert eine Nachricht mit ChaCha20-Poly1305 (IETF-Variante).
  
  Die IETF-Variante verwendet 96-Bit-Nonces und interne 32-Bit Zähler anstelle von 64-Bit für
  beides.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Muss das von der Funktion
                            <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> bereitgestellte
                            Format haben (Chiffretext und Tag, verknüpft).
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 12
                            Bytes lang.
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Entschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Gibt im Erfolgsfall den Klartext zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: sodium_crypto_aead_chacha20poly1305_ietf_encrypt
type: function
doc:
<comment>Description:</comment>
  Verschlüsselt eine Nachricht
  
  Verschlüsselt und authentifiziert eine Nachricht mit ChaCha20-Poly1305 (IETF-Variante).
  
  Die IETF-Variante verwendet 96-Bit-Nonces und interne 32-Bit Zähler anstelle von 64-Bit für
  beides.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Der Klartext, welcher verschlüsselt werden soll.
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 12
                            Bytes lang.
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Verschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string</info>  Gibt bei Erfolg den Chiffriertext und das Tag zurück. Bei einem Fehler wird <info>false</info>
          zurückgegeben.


id: sodium_crypto_aead_chacha20poly1305_ietf_keygen
type: function
doc:
<comment>Description:</comment>
  Generiert einen zufälligen ChaCha20-Poly1305-IETF-Schlüssel.
  
  Generiert einen zufälligen Schlüssel für die Nutzung von
  <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> und
  <strong>sodium_crypto_aead_chacha20poly1305_ietf_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Gibt einen 256-Bit-Zufallsschlüssel zurück.


id: sodium_crypto_aead_chacha20poly1305_keygen
type: function
doc:
<comment>Description:</comment>
  Generiert einen zufälligen ChaCha20-Poly1305-Schlüssel
  
  Generiert einen zufälligen Schlüssel für die Nutzung von
  <strong>sodium_crypto_aead_chacha20poly1305_encrypt()</strong> und <strong>sodium_crypto_aead_chacha20poly1305_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Gibt einen 256-Bit-Zufallsschlüssel zurück.


id: sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
type: function
doc:
<comment>Description:</comment>
  (Empfohlen) Überprüft und entschlüsselt eine Nachricht mit XChaCha20-Poly1305
  
  Überprüft und entschlüsselt eine Nachricht mit ChaCha20-Poly1305 (Erweiterte-Nonce-Variante).
  
  Im Allgemeinen ist XChaCha20-Poly1305 der beste der angebotenen AEAD-Modi.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Muss das von der Funktion
                            <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> bereitgestellte
                            Format haben (Chiffretext und Tag, verknüpft).
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 24
                            Bytes lang. Diese Größe ist groß genug, um sie zufällig zu erzeugen
                            (z. B. mit <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Entschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Gibt im Erfolgsfall den Klartext zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
type: function
doc:
<comment>Description:</comment>
  (Empfohlen) Verschlüsselt und authentifiziert eine Nachricht mit XChaCha20-Poly1305
  
  Verschlüsselt und authentifiziert eine Nachricht mit XChaCha20-Poly1305
  (Erweiterte-Nonce-Variante).
  
  Im Allgemeinen ist XChaCha20-Poly1305 der beste der angebotenen AEAD-Modi.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Der Klartext, welcher verschlüsselt werden soll.
  <info>string</info>  <strong>$additional_data</strong>  Zusätzliche, zu authentifizierende Daten. Diese Daten werden weder
                            verschlüsselt, noch an den Chiffriertext angehängt.
  <info>string</info>  <strong>$nonce</strong>            Eine Nummer, die nur einmal pro Nachricht verwendet werden darf; 24
                            Bytes lang. Diese Größe ist groß genug, um sie zufällig zu erzeugen
                            (z. B. mit <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>              Schlüssel für die Verschlüsselung (256-bit).

<comment>Return:</comment>
  <info>string</info>  Gibt bei Erfolg den Chiffriertext und das Tag zurück. Bei einem Fehler wird <info>false</info>
          zurückgegeben.


id: sodium_crypto_aead_xchacha20poly1305_ietf_keygen
type: function
doc:
<comment>Description:</comment>
  Generiert einen zufälligen XChaCha20-Poly1305-Schlüssel.
  
  Generiert einen zufälligen Schlüssel für die Nutzung von
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_encrypt()</strong> und
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Gibt einen 256-Bit-Zufallsschlüssel zurück.


id: sodium_crypto_auth
type: function
doc:
<comment>Description:</comment>
  Compute a tag for the message
  
  Symmetric message authentication via <strong>sodium_crypto_auth()</strong> provides integrity, but not
  confidentiality.
  
  Unlike with digital signatures (e.g. <strong>sodium_crypto_sign_detached()</strong>), any party capable of
  verifying a message is also capable of authenticating their own messages. (Hence, symmetric
  authentication.)

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message you intend to authenticate
  <info>string</info>  <strong>$key</strong>      Authentication key

<comment>Return:</comment>
  <info>string</info>  Authentication tag


id: sodium_crypto_auth_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random key for sodium_crypto_auth
  
  Generate a key for use with <strong>sodium_crypto_auth()</strong> and <strong>sodium_crypto_auth_verify()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 256-bit random key.


id: sodium_crypto_auth_verify
type: function
doc:
<comment>Description:</comment>
  Verifies that the tag is valid for the message
  
  Verify the authentication tag is valid for a given message and key.
  
  Unlike with digital signatures (e.g. <strong>sodium_crypto_sign_verify_detached()</strong>), any party capable of
  verifying a message is also capable of authenticating their own messages. (Hence, symmetric
  authentication.)

<comment>Param:</comment>
  <info>string</info>  <strong>$mac</strong>      Authentication tag produced by <strong>sodium_crypto_auth()</strong>
  <info>string</info>  <strong>$message</strong>  Message
  <info>string</info>  <strong>$key</strong>      Authentication key

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: sodium_crypto_box
type: function
doc:
<comment>Description:</comment>
  Authenticated public-key encryption
  
  Encrypt a message using asymmetric (public key) cryptography.
  
  The algorithm used by functions prefixed with <strong>sodium_crypto_box()</strong> are Elliptic Curve
  Diffie-Hellman over the Montgomery curve, Curve25519; usually abbreviated as X25519.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>   The message to be encrypted.
  <info>string</info>  <strong>$nonce</strong>     A number that must be only used once, per message. 24 bytes long. This is a
                     large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key_pair</strong>  See <strong>sodium_crypto_box_keypair_from_secretkey_and_publickey()</strong>. This should
                     include the sender's X25519 secret key and the recipient's X25519 public key.

<comment>Return:</comment>
  <info>string</info>  Returns the encrypted message (ciphertext plus authentication tag). The ciphertext will be
          16 bytes longer than the plaintext, and a raw binary string. See <strong>sodium_bin2base64()</strong> for
          safe encoding for storage.


id: sodium_crypto_box_keypair
type: function
doc:
<comment>Description:</comment>
  Randomly generate a secret key and a corresponding public key
  
  Generates a secret key and a public key as one string.
  
  To get the secret key out of this unified keypair string, see <strong>sodium_crypto_box_secretkey()</strong>. To
  get the public key out of this unified keypair string, see <strong>sodium_crypto_box_publickey()</strong>.

<comment>Return:</comment>
  <info>string</info>  One string containing both the X25519 secret key and corresponding X25519 public key.


id: sodium_crypto_box_keypair_from_secretkey_and_publickey
type: function
doc:
<comment>Description:</comment>
  Create a unified keypair string from a secret key and public key
  
  This function exists to satisfy the API requirements of e.g. <strong>crypto_box()</strong>. Pass in one party's
  secret key and the other's public key, and you will obtain a "keypair" for your conversation.

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Secret key.
  <info>string</info>  <strong>$public_key</strong>  Public key.

<comment>Return:</comment>
  <info>string</info>  X25519 Keypair.


id: sodium_crypto_box_open
type: function
doc:
<comment>Description:</comment>
  Authenticated public-key decryption
  
  Decrypt a message using asymmetric (public key) cryptography.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  The encrypted message to attempt to decrypt.
  <info>string</info>  <strong>$nonce</strong>       A number that must be only used once, per message. 24 bytes long. This is a
                       large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key_pair</strong>    See <strong>sodium_crypto_box_keypair_from_secretkey_and_publickey()</strong>. This should
                       include the sender's public key and the recipient's secret key.

<comment>Return:</comment>
  <info>string|false</info>  Returns the plaintext message on success, Bei einem Fehler wird <info>false</info>
                zurückgegeben..


id: sodium_crypto_box_publickey
type: function
doc:
<comment>Description:</comment>
  Extract the public key from a crypto_box keypair
  
  Given a keypair, fetch only the public key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  A keypair, such as one generated by <strong>sodium_crypto_box_keypair()</strong> or
                     <strong>sodium_crypto_box_seed_keypair()</strong>

<comment>Return:</comment>
  <info>string</info>  X25519 public key.


id: sodium_crypto_box_publickey_from_secretkey
type: function
doc:
<comment>Description:</comment>
  Calculate the public key from a secret key
  
  Given a secret key, calculate the corresponding public key.
  
  This only works with the type of keys intended for use with <strong>crypto_box()</strong> (which uses Elliptic
  Curve Diffie-Hellman over the Montgomery curve, Curve25519; abbreviated as X25519), not
  <strong>crypto_sign()</strong> (which uses Edwards Digital Signature Algorithm over the Edwards Curve with the
  corresponding paramaters; abbreviated Ed25519).

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  X25519 secret key

<comment>Return:</comment>
  <info>string</info>  X25519 public key.


id: sodium_crypto_box_seal
type: function
doc:
<comment>Description:</comment>
  Anonymous public-key encryption
  
  Encrypt a message such that only the recipient can decrypt it.
  
  Unlike with <strong>sodium_crypto_box()</strong>, you only need to know the recipient's public key to use
  <strong>sodium_crypto_box_seal()</strong>. One consequence of this convenience, however, is that the ciphertext
  isn't bound to a static public key, and is therefore not authenticated. Hence, anonymous
  public-key encryption.
  
  <strong>sodium_crypto_box_seal()</strong> still provides ciphertext integrity. Just not sender identity
  authentication.
  
  If you also need sender authentication, the <strong>sodium_crypto_sign()</strong> functions are likely the best
  place to start.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>     The message to encrypt.
  <info>string</info>  <strong>$public_key</strong>  The public key that corresponds to the only key that can decrypt the message.

<comment>Return:</comment>
  <info>string</info>  A ciphertext string in the format of (one-time public key, encrypted message,
          authentication tag).


id: sodium_crypto_box_seal_open
type: function
doc:
<comment>Description:</comment>
  Anonymous public-key decryption
  
  Decrypt a message that was encrypted with <strong>sodium_crypto_box_seal()</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  The encrypted message
  <info>string</info>  <strong>$key_pair</strong>    The keypair of the recipient. Must include the secret key.

<comment>Return:</comment>
  <info>string|false</info>  The plaintext on success, Bei einem Fehler wird <info>false</info> zurückgegeben..


id: sodium_crypto_box_secretkey
type: function
doc:
<comment>Description:</comment>
  Extracts the secret key from a crypto_box keypair
  
  Given a keypair, fetch only the secret key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  A keypair, such as one generated by <strong>sodium_crypto_box_keypair()</strong> or
                     <strong>sodium_crypto_box_seed_keypair()</strong>

<comment>Return:</comment>
  <info>string</info>  X25519 secret key.


id: sodium_crypto_box_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Deterministically derive the key pair from a single key
  
  Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.
  
  The <return>*_seed_keypair</return> functions are ideal for generating a keypair from a password and salt. Use the
  result as a <strong>$seed</strong> to generate the desired keys.

<comment>Param:</comment>
  <info>string</info>  <strong>$seed</strong>  Some cryptographic input. Must be 32 bytes.

<comment>Return:</comment>
  <info>string</info>  X25519 Keypair (secret key and public key).


id: sodium_crypto_core_ristretto255_add
type: function
doc:
<comment>Description:</comment>
  Adds an element
  
  Adds an element <strong>$q</strong> to <strong>$p</strong>. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$p</strong>  An element.
  <info>string</info>  <strong>$q</strong>  An element.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_sub()</strong>


id: sodium_crypto_core_ristretto255_from_hash
type: function
doc:
<comment>Description:</comment>
  Maps a vector
  
  Maps a 64-bytes vector <strong>$s</strong> to a group element. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  A 64-bytes vector.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_hex2bin()</strong>
   * <strong>sodium_bin2hex()</strong>
   * <strong>sodium_crypto_core_ristretto255_from_hash()</strong>


id: sodium_crypto_core_ristretto255_is_valid_point
type: function
doc:
<comment>Description:</comment>
  Determines if a point on the ristretto255 curve
  
  Determines if a point on the ristretto255 curve, in canonical form, on the main subgroup, and that
  the point doesn't have a small order. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  An Elliptic-curve point.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$s</strong> is on the ristretto255 curve, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>
   * <strong>sodium_crypto_scalarmult_ristretto255_base()</strong>


id: sodium_crypto_core_ristretto255_random
type: function
doc:
<comment>Description:</comment>
  Generates a random key
  
  Generates a random key. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_add()</strong>
   * <strong>sodium_crypto_core_ristretto255_sub()</strong>


id: sodium_crypto_core_ristretto255_scalar_add
type: function
doc:
<comment>Description:</comment>
  Adds a scalar value
  
  Adds an element <strong>$y</strong> to <strong>$x</strong>. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Scalar, representing the X coordinate.
  <info>string</info>  <strong>$y</strong>  Scalar, representing the Y coordinate.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_scalar_sub()</strong>


id: sodium_crypto_core_ristretto255_scalar_complement
type: function
doc:
<comment>Description:</comment>
  The sodium_crypto_core_ristretto255_scalar_complement purpose
  
  Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_invert
type: function
doc:
<comment>Description:</comment>
  Inverts a scalar value
  
  Inverts a scalar value. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_mul
type: function
doc:
<comment>Description:</comment>
  Multiplies a scalar value
  
  Multiplies a scalar value. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Scalar, representing the X coordinate.
  <info>string</info>  <strong>$y</strong>  Scalar, representing the Y coordinate.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_negate
type: function
doc:
<comment>Description:</comment>
  Negates a scalar value
  
  Negates a scalar value. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_random
type: function
doc:
<comment>Description:</comment>
  Generates a random key
  
  Generates a random key. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_add()</strong>
   * <strong>sodium_crypto_core_ristretto255_scalar_sub()</strong>


id: sodium_crypto_core_ristretto255_scalar_reduce
type: function
doc:
<comment>Description:</comment>
  Reduces a scalar value
  
  Reduces a scalar value. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_sub
type: function
doc:
<comment>Description:</comment>
  Subtracts a scalar value
  
  Subtracts a scalar <strong>$y</strong> from <strong>$x</strong>. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Scalar, representing the X coordinate.
  <info>string</info>  <strong>$y</strong>  Scalar, representing the Y coordinate.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_scalar_add()</strong>


id: sodium_crypto_core_ristretto255_sub
type: function
doc:
<comment>Description:</comment>
  Subtracts an element
  
  Subtracts an element <strong>$q</strong> from <strong>$p</strong>. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$p</strong>  An element.
  <info>string</info>  <strong>$q</strong>  An element.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_add()</strong>


id: sodium_crypto_generichash
type: function
doc:
<comment>Description:</comment>
  Get a hash of the message
  
  Hash a message with BLAKE2b.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message being hashed.
  <info>string</info>  <strong>$key</strong>      (Optional) cryptographic key. This serves the same function as a HMAC key, but
                    it's utilized as a reserved section of the internal BLAKE2 state.
  <info>int</info>     <strong>$length</strong>   Output size.

<comment>Return:</comment>
  <info>string</info>  The cryptographic hash as raw bytes. If a hex-encoded output is desired, the result can be
          passed to <strong>sodium_bin2hex()</strong>.


id: sodium_crypto_generichash_final
type: function
doc:
<comment>Description:</comment>
  Complete the hash
  
  The finalization method for the streaming generichash API.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>   Hash state returned from <strong>sodium_crypto_generichash_init()</strong>
  <info>int</info>     <strong>$length</strong>  Output length.

<comment>Return:</comment>
  <info>string</info>  Cryptographic hash.


id: sodium_crypto_generichash_init
type: function
doc:
<comment>Description:</comment>
  Initialize a hash for streaming
  
  The initialization method for the streaming generichash API.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     The generichash key.
  <info>int</info>     <strong>$length</strong>  The expected output length of the hash function.

<comment>Return:</comment>
  <info>string</info>  Returns a hash state, serialized as a raw binary string.


id: sodium_crypto_generichash_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random generichash key
  
  Generate a random key for use with the generichash API.

<comment>Return:</comment>
  <info>string</info>  A random 256-bit key.


id: sodium_crypto_generichash_update
type: function
doc:
<comment>Description:</comment>
  Add message to a hash
  
  Appends a message to the internal hash state.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>    The return value of <strong>sodium_crypto_generichash_init()</strong>.
  <info>string</info>  <strong>$message</strong>  Data to append to the hashing state.

<comment>Return:</comment>
  <info>true</info>  Gibt immer <info>true</info> zurück.


id: sodium_crypto_kdf_derive_from_key
type: function
doc:
<comment>Description:</comment>
  Derive a subkey
  
  Derive a subkey from a root key and additional context.
  
  Similar to <strong>hash_hkdf()</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$subkey_length</strong>  Length of the key to return (in bytes)
  <info>int</info>     <strong>$subkey_id</strong>      Return the Nth subkey from a given root key. Useful for seeking.
  <info>string</info>  <strong>$context</strong>        Application-specific context.
  <info>string</info>  <strong>$key</strong>            The root key from which the subkey is derived.

<comment>Return:</comment>
  <info>string</info>  A string of pseudorandom (raw binary) bytes.


id: sodium_crypto_kdf_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random root key for the KDF interface
  
  Generates a random key suitable for serving as the root key for
  <strong>sodium_crypto_kdf_derive_from_key()</strong>.

<comment>Return:</comment>
  <info>string</info>  A random 256-bit key.


id: sodium_crypto_kx_client_session_keys
type: function
doc:
<comment>Description:</comment>
  Calculate the client-side session keys.
  
  Calculate the client-side session keys, using the X25519 + BLAKE2b key-exchange method.

<comment>Param:</comment>
  <info>string</info>  <strong>$client_key_pair</strong>  A crypto_kx keypair, such as one generated by
                            <strong>sodium_crypto_kx_keypair()</strong>.
  <info>string</info>  <strong>$server_key</strong>       A crypto_kx public key.

<comment>Return:</comment>
  <info>array</info>  An array consisting of two strings. The first should be used for receiving data from the
         server. The second should be used for sending data to the server.


id: sodium_crypto_kx_keypair
type: function
doc:
<comment>Description:</comment>
  Creates a new sodium keypair
  
  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 <strong>sodium_crypto_kx_secretkey()</strong> and
  <strong>sodium_crypto_kx_publickey()</strong>, respectively.

<comment>Return:</comment>
  <info>string</info>  Returns the new keypair on success; throws an exception otherwise.


id: sodium_crypto_kx_publickey
type: function
doc:
<comment>Description:</comment>
  Extract the public key from a crypto_kx keypair
  
  Extract the public key from a crypto_kx keypair.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  X25519 keypair, such as one generated by <strong>sodium_crypto_kx_keypair()</strong>.

<comment>Return:</comment>
  <info>string</info>  X25519 public key.


id: sodium_crypto_kx_secretkey
type: function
doc:
<comment>Description:</comment>
  Extract the secret key from a crypto_kx keypair.
  
  Extract the secret key from a crypto_kx keypair.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  X25519 keypair, such as one generated by <strong>sodium_crypto_kx_keypair()</strong>.

<comment>Return:</comment>
  <info>string</info>  X25519 secret key.


id: sodium_crypto_kx_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Description
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$seed</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: sodium_crypto_kx_server_session_keys
type: function
doc:
<comment>Description:</comment>
  Calculate the server-side session keys.
  
  Calculate the server-side session keys, using the X25519 + BLAKE2b key-exchange method.

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key_pair</strong>  A crypto_kx keypair, such as one generated by
                            <strong>sodium_crypto_kx_keypair()</strong>.
  <info>string</info>  <strong>$client_key</strong>       A crypto_kx public key.

<comment>Return:</comment>
  <info>array</info>  An array consisting of two strings. The first should be used for receiving data from the
         client. The second should be used for sending data to the client.


id: sodium_crypto_pwhash
type: function
doc:
<comment>Description:</comment>
  Derive a key from a password, using Argon2
  
  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 <strong>sodium_crypto_pwhash_str()</strong> or
  <strong>password_hash()</strong> functions instead.
  
  A common reason to use this particular function is to derive the seeds for cryptographic keys from
  a password and salt, and then use these seeds to generate the actual keys needed for some purpose
  (e.g. <strong>sodium_crypto_sign_detached()</strong>).

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>    <info>int</info>; The length of the password hash to generate, in bytes.
  <info>string</info>  <strong>$password</strong>  <info>string</info>; The password to generate a hash for.
  <info>string</info>  <strong>$salt</strong>      A salt to add to the password before hashing. The salt should be unpredictable,
                     ideally generated from a good random number source such as <strong>random_bytes()</strong>, and
                     have a length of at least <info>SODIUM_CRYPTO_PWHASH_SALTBYTES</info> bytes.
  <info>int</info>     <strong>$opslimit</strong>  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:
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  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:
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</info>, and
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</info>. Typically these should be paired with
                     the matching <strong>$opslimit</strong> values.
  <info>int</info>     <strong>$algo</strong>      <info>int</info> A number indicating the hash algorithm to use. By default
                     <info>SODIUM_CRYPTO_PWHASH_ALG_DEFAULT</info> (the currently recommended algorithm, which
                     can change from one version of libsodium to another), or explicitly using
                     <info>SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13</info>, representing the Argon2id algorithm
                     version 1.3.

<comment>Return:</comment>
  <info>string</info>  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 <strong>sodium_crypto_pwhash_str()</strong> to avoid
          needing to do all that.


id: sodium_crypto_pwhash_scryptsalsa208sha256
type: function
doc:
<comment>Description:</comment>
  Derives a key from a password, using scrypt
  
  This is the scrypt counterpart to <strong>sodium_crypto_pwhash()</strong>.
  
  A common reason to use this particular function is to derive the seeds for cryptographic keys from
  a password and salt, and then use these seeds to generate the actual keys needed for some purpose
  (e.g. <strong>sodium_crypto_sign_detached()</strong>).

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>    The length of the password hash to generate, in bytes.
  <info>string</info>  <strong>$password</strong>  The password to generate a hash for.
  <info>string</info>  <strong>$salt</strong>      A salt to add to the password before hashing. The salt should be unpredictable,
                     ideally generated from a good random number source such as <strong>random_bytes()</strong>, and
                     have a length of at least <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES</info>
                     bytes.
  <info>int</info>     <strong>$opslimit</strong>  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:
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  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:
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE</info>. Typically these
                     should be paired with the matching <strong>$opslimit</strong> values.

<comment>Return:</comment>
  <info>string</info>  A string of bytes of the desired length.


id: sodium_crypto_pwhash_scryptsalsa208sha256_str
type: function
doc:
<comment>Description:</comment>
  Get an ASCII encoded hash
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  
  <info>int</info>     <strong>$opslimit</strong>  
  <info>int</info>     <strong>$memlimit</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
type: function
doc:
<comment>Description:</comment>
  Verify that the password is a valid password verification string
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>      
  <info>string</info>  <strong>$password</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: sodium_crypto_pwhash_str
type: function
doc:
<comment>Description:</comment>
  Get an ASCII-encoded hash
  
  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.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  <info>string</info>; The password to generate a hash for.
  <info>int</info>     <strong>$opslimit</strong>  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:
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  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:
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</info>, and
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</info>. Typically these should be paired with
                     the matching opslimit values.

<comment>Return:</comment>
  <info>string</info>  Returns the hashed password.
          
          In order to produce the same password hash from the same password, the same values for
          <strong>$opslimit</strong> and <strong>$memlimit</strong> must be used. These are embedded within the generated hash, so
          everything that's needed to verify the hash is included. This allows the
          <strong>sodium_crypto_pwhash_str_verify()</strong> function to verify the hash without needing separate
          storage for the other parameters.

<comment>See Also:</comment>
   * <strong>sodium_crypto_pwhash_str_verify()</strong>
   * <strong>sodium_crypto_pwhash()</strong>
   * <strong>password_hash()</strong>
   * <strong>password_verify()</strong>
   * Libsodium Argon2 docs


id: sodium_crypto_pwhash_str_needs_rehash
type: function
doc:
<comment>Description:</comment>
  Determine whether or not to rehash a password
  
  Determine whether or not to rehash a password, based on the current hash <strong>$opslimit</strong> and <strong>$memlimit</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  Password hash
  <info>int</info>     <strong>$opslimit</strong>  Configured opslimit; see <strong>sodium_crypto_pwhash_str()</strong>
  <info>int</info>     <strong>$memlimit</strong>  Configured memlimit; see <strong>sodium_crypto_pwhash_str()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the provided memlimit/opslimit do not match what's stored in the hash.
        Returns <info>false</info> if they match.


id: sodium_crypto_pwhash_str_verify
type: function
doc:
<comment>Description:</comment>
  Verifies that a password matches a hash
  
  Checks that a password hash created using <strong>sodium_crypto_pwhash_str()</strong> matches a given plain-text
  password. Note that the parameters are in the opposite order to the same parameters in the similar
  <strong>password_verify()</strong> function.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>      Ein Hash, der durch <strong>password_hash()</strong> erzeugt wurde.
  <info>string</info>  <strong>$password</strong>  Das Passwort des Benutzers.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the password and hash match, or <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>sodium_crypto_pwhash_str()</strong>
   * <strong>password_hash()</strong>
   * <strong>password_verify()</strong>


id: sodium_crypto_scalarmult
type: function
doc:
<comment>Description:</comment>
  Compute a shared secret given a user's secret key and another user's public key
  
  Elliptic Curve Diffie-Hellman. Calculates scalar n times point p, on an elliptic curve.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  scalar, which is typically a secret key
  <info>string</info>  <strong>$p</strong>  point (x-coordinate), which is typically a public key

<comment>Return:</comment>
  <info>string</info>  A 32-byte random string.


id: sodium_crypto_scalarmult_base
type: function
doc:
<comment>Description:</comment>
  Alias von sodium_crypto_box_publickey_from_secretkey
  
  Diese Funktion ist ein Alias für:  <strong>sodium_crypto_box_publickey_from_secretkey()</strong>.


id: sodium_crypto_scalarmult_ristretto255
type: function
doc:
<comment>Description:</comment>
  Computes a shared secret
  
  Calculates scalar <strong>$n</strong> times point <strong>$p</strong>. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  A scalar, which is typically a secret key.
  <info>string</info>  <strong>$p</strong>  A point (x-coordinate), which is typically a public key.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_scalarmult_ristretto255_base()</strong>


id: sodium_crypto_scalarmult_ristretto255_base
type: function
doc:
<comment>Description:</comment>
  Calculates the public key from a secret key
  
  Given a secret key, calculates the corresponding public key. Available as of libsodium 1.0.18.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  A secret key.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random String.

<comment>See Also:</comment>
   * <strong>sodium_crypto_scalarmult_ristretto255()</strong>


id: sodium_crypto_secretbox
type: function
doc:
<comment>Description:</comment>
  Authenticated shared-key encryption
  
  Encrypt a message with a symmetric (shared) key.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The plaintext message to encrypt.
  <info>string</info>  <strong>$nonce</strong>    A number that must be only used once, per message. 24 bytes long. This is a
                    large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>      Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Returns the encrypted string.

<comment>See Also:</comment>
   * <strong>sodium_crypto_secretbox_open()</strong>
   * <strong>sodium_crypto_secretbox_keygen()</strong>
   * <strong>random_bytes()</strong>


id: sodium_crypto_secretbox_keygen
type: function
doc:
<comment>Description:</comment>
  Generate random key for sodium_crypto_secretbox
  
  Generate a key for use with <strong>sodium_crypto_secretbox()</strong> and <strong>sodium_crypto_secretbox_open()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns the generated string of cryptographically secure random bytes.

<comment>See Also:</comment>
   * <strong>sodium_bin2hex()</strong>
   * <strong>random_bytes()</strong>


id: sodium_crypto_secretbox_open
type: function
doc:
<comment>Description:</comment>
  Authenticated shared-key decryption
  
  Decrypt an encrypted message with a symmetric (shared) key.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  Must be in the format provided by <strong>sodium_crypto_secretbox()</strong> (ciphertext and
                       tag, concatenated).
  <info>string</info>  <strong>$nonce</strong>       A number that must be only used once, per message. 24 bytes long. This is a
                       large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>         Encryption key (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  The decrypted string on successBei einem Fehler wird <info>false</info> zurückgegeben..

<comment>See Also:</comment>
   * <strong>sodium_crypto_secretbox()</strong>
   * <strong>sodium_crypto_secretbox_keygen()</strong>
   * <strong>random_bytes()</strong>


id: sodium_crypto_secretstream_xchacha20poly1305_init_pull
type: function
doc:
<comment>Description:</comment>
  Initialize a secretstream context for decryption
  
  Initialize a secretstream context for decryption.

<comment>Param:</comment>
  <info>string</info>  <strong>$header</strong>  The header of the secretstream. This should be one of the values produced by
                   <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>.
  <info>string</info>  <strong>$key</strong>     Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Secretstream state.


id: sodium_crypto_secretstream_xchacha20poly1305_init_push
type: function
doc:
<comment>Description:</comment>
  Initialize a secretstream context for encryption
  
  Initialize a secretstream context for encryption.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  Cryptography key. See <strong>sodium_crypto_secretstream_xchacha20poly1305_keygen()</strong>.

<comment>Return:</comment>
  <info>array</info>  An array with two string values:


id: sodium_crypto_secretstream_xchacha20poly1305_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random secretstream key.
  
  Generate a random secretstream key.

<comment>Return:</comment>
  <info>string</info>  Returns a string of random bytes.


id: sodium_crypto_secretstream_xchacha20poly1305_pull
type: function
doc:
<comment>Description:</comment>
  Decrypt a chunk of data from an encrypted stream
  
  Decrypt a chunk of data from an encrypted stream.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>            See <strong>sodium_crypto_secretstream_xchacha20poly1305_init_pull()</strong> and
                            <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>
  <info>string</info>  <strong>$ciphertext</strong>       The ciphertext chunk to decrypt.
  <info>string</info>  <strong>$additional_data</strong>  Optional additional data to include in the authentication tag.

<comment>Return:</comment>
  <info>array|false</info>  An array with two values: <info>string</info>; The decrypted chunk <info>int</info>; An optional tag (if
               provided during push). Possible values:
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</info>: the most common tag, that
               doesn't add any information about the nature of the message.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</info>: indicates that the message
               marks the end of the stream, and erases the secret key used to encrypt the previous
               sequence. <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</info>: indicates that the
               message marks the end of a set of messages, but not the end of the stream. For
               example, a huge JSON string sent as multiple chunks can use this tag to indicate to
               the application that the string is complete and that it can be decoded. But the
               stream itself is not closed, and more data may follow.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</info>: "forget" the key used to
               encrypt this message and the previous ones, and derive a new secret key.
               
               <info>string</info>; The decrypted chunk
               
               <info>int</info>; An optional tag (if provided during push). Possible values:
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</info>: the most common tag, that
               doesn't add any information about the nature of the message.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</info>: indicates that the message
               marks the end of the stream, and erases the secret key used to encrypt the previous
               sequence. <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</info>: indicates that the
               message marks the end of a set of messages, but not the end of the stream. For
               example, a huge JSON string sent as multiple chunks can use this tag to indicate to
               the application that the string is complete and that it can be decoded. But the
               stream itself is not closed, and more data may follow.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</info>: "forget" the key used to
               encrypt this message and the previous ones, and derive a new secret key.


id: sodium_crypto_secretstream_xchacha20poly1305_push
type: function
doc:
<comment>Description:</comment>
  Encrypt a chunk of data so that it can safely be decrypted in a streaming API
  
  Encrypt a chunk of data so that it can safely be decrypted in a streaming API.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>            See <strong>sodium_crypto_secretstream_xchacha20poly1305_init_pull()</strong> and
                            <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>
  <info>string</info>  <strong>$message</strong>          
  <info>string</info>  <strong>$additional_data</strong>  
  <info>int</info>     <strong>$tag</strong>              Optional. Can be used to assert decryption behavior (i.e. re-keying or
                            indicating the final chunk in a stream).

<comment>Return:</comment>
  <info>string</info>  Returns the encrypted ciphertext.


id: sodium_crypto_secretstream_xchacha20poly1305_rekey
type: function
doc:
<comment>Description:</comment>
  Explicitly rotate the key in the secretstream state
  
  Explicitly rotate the key in the secretstream state. Overwrites the value passed in.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>  Secretstream state.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: sodium_crypto_shorthash
type: function
doc:
<comment>Description:</comment>
  Compute a short hash of a message and key
  
  <strong>sodium_crypto_shorthash()</strong> wraps a hash function called SipHash-2-4, which is ideal for
  implementing hash tables that are not susceptible to hash collision denial of service attacks
  (Hash-DoS).
  
  SipHash-2-4 isn't a general purpose cryptographic hash function.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to hash.
  <info>string</info>  <strong>$key</strong>      The hash key.

<comment>Return:</comment>
  <info>string</info>  


id: sodium_crypto_shorthash_keygen
type: function
doc:
<comment>Description:</comment>
  Get random bytes for key
  
  Generate a key for use with <strong>sodium_crypto_shorthash()</strong>.
  
  Diese Funktion ist bis jetzt
  nicht dokumentiert. Es steht nur die Liste der Parameter zur
  Verfügung.

<comment>Return:</comment>
  <info>string</info>  


id: sodium_crypto_sign
type: function
doc:
<comment>Description:</comment>
  Sign a message
  
  Sign a message with a secret key, that can be verified by the corresponding public key. This
  function attaches the signature to the message. See <strong>sodium_crypto_sign_detached()</strong> for detached
  signatures.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>     Message to sign.
  <info>string</info>  <strong>$secret_key</strong>  Secret key. See <strong>sodium_crypto_sign_secretkey()</strong>

<comment>Return:</comment>
  <info>string</info>  Signed message (not encrypted).


id: sodium_crypto_sign_detached
type: function
doc:
<comment>Description:</comment>
  Sign the message
  
  Sign a message with a secret key, that can be verified by the corresponding public key. This
  function returns a detached signature.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>     Message to sign.
  <info>string</info>  <strong>$secret_key</strong>  Secret key. See <strong>sodium_crypto_sign_secretkey()</strong>

<comment>Return:</comment>
  <info>string</info>  Cryptographic signature.


id: sodium_crypto_sign_ed25519_pk_to_curve25519
type: function
doc:
<comment>Description:</comment>
  Convert an Ed25519 public key to a Curve25519 public key
  
  Given an Ed25519 public key, calculate the birationally equivalent X25519 public key.

<comment>Param:</comment>
  <info>string</info>  <strong>$public_key</strong>  Public key suitable for the crypto_sign functions.

<comment>Return:</comment>
  <info>string</info>  Public key suitable for the crypto_box functions.


id: sodium_crypto_sign_ed25519_sk_to_curve25519
type: function
doc:
<comment>Description:</comment>
  Convert an Ed25519 secret key to a Curve25519 secret key
  
  Given an Ed25519 secret key, calculate the birationally equivalent X25519 secret key.

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Secret key suitable for the crypto_sign functions.

<comment>Return:</comment>
  <info>string</info>  Secret key suitable for the crypto_box functions.


id: sodium_crypto_sign_keypair
type: function
doc:
<comment>Description:</comment>
  Randomly generate a secret key and a corresponding public key
  
  Generate a random Ed25519 keypair as one string.

<comment>Return:</comment>
  <info>string</info>  Ed25519 keypair.


id: sodium_crypto_sign_keypair_from_secretkey_and_publickey
type: function
doc:
<comment>Description:</comment>
  Join a secret key and public key together
  
  Join a secret key and public key together.

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Ed25519 secret key
  <info>string</info>  <strong>$public_key</strong>  Ed25519 public key

<comment>Return:</comment>
  <info>string</info>  Keypair


id: sodium_crypto_sign_open
type: function
doc:
<comment>Description:</comment>
  Check that the signed message has a valid signature
  
  Verify the signature attached to a message and return the message

<comment>Param:</comment>
  <info>string</info>  <strong>$signed_message</strong>  A message signed with <strong>sodium_crypto_sign()</strong>
  <info>string</info>  <strong>$public_key</strong>      An Ed25519 public key

<comment>Return:</comment>
  <info>string|false</info>  Returns the original signed message on success, Bei einem Fehler wird <info>false</info>
                zurückgegeben..


id: sodium_crypto_sign_publickey
type: function
doc:
<comment>Description:</comment>
  Extract the Ed25519 public key from a keypair
  
  Extract the Ed25519 public key from a keypair

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Ed25519 keypair (see: <strong>sodium_crypto_sign_keypair()</strong>)

<comment>Return:</comment>
  <info>string</info>  Ed25519 public key


id: sodium_crypto_sign_publickey_from_secretkey
type: function
doc:
<comment>Description:</comment>
  Extract the Ed25519 public key from the secret key
  
  Extract the Ed25519 public key from the secret key

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Ed25519 secret key

<comment>Return:</comment>
  <info>string</info>  Ed25519 public key


id: sodium_crypto_sign_secretkey
type: function
doc:
<comment>Description:</comment>
  Extract the Ed25519 secret key from a keypair
  
  Extract the Ed25519 secret key from a keypair

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Ed25519 keypair (see: <strong>sodium_crypto_sign_keypair()</strong>)

<comment>Return:</comment>
  <info>string</info>  Ed25519 secret key


id: sodium_crypto_sign_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Deterministically derive the key pair from a single key
  
  Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.
  
  The <return>*_seed_keypair</return> functions are ideal for generating a keypair from a password and salt. Use the
  result as a <strong>$seed</strong> to generate the desired keys.

<comment>Param:</comment>
  <info>string</info>  <strong>$seed</strong>  Some cryptographic input. Must be 32 bytes.

<comment>Return:</comment>
  <info>string</info>  Keypair (secret key and public key)


id: sodium_crypto_sign_verify_detached
type: function
doc:
<comment>Description:</comment>
  Verify signature for the message
  
  Verify signature for the message

<comment>Param:</comment>
  <info>string</info>  <strong>$signature</strong>   The cryptographic signature obtained from <strong>sodium_crypto_sign_detached()</strong>
  <info>string</info>  <strong>$message</strong>     The message being verified
  <info>string</info>  <strong>$public_key</strong>  Ed25519 public key

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: sodium_crypto_stream
type: function
doc:
<comment>Description:</comment>
  Generate a deterministic sequence of bytes from a seed
  
  Generate a deterministic sequence of bytes from a seed, using the XSalsa20 stream cipher.

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>  The number of bytes to return.
  <info>string</info>  <strong>$nonce</strong>   A number that must be only used once, per message. 24 bytes long. This is a large
                   enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>     Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  String of pseudorandom bytes.


id: sodium_crypto_stream_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random sodium_crypto_stream key.
  
  Generate a key for use with <strong>sodium_crypto_stream()</strong> and <strong>sodium_crypto_stream_xor()</strong>.

<comment>Return:</comment>
  <info>string</info>  Encryption key (256-bit).


id: sodium_crypto_stream_xchacha20
type: function
doc:
<comment>Description:</comment>
  Expands the key and nonce into a keystream of pseudorandom bytes
  
  Expands the <strong>$key</strong> and <strong>$nonce</strong> into a keystream of pseudorandom bytes.

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>  Number of bytes desired.
  <info>string</info>  <strong>$nonce</strong>   24-byte nonce.
  <info>string</info>  <strong>$key</strong>     Key, possibly generated from <strong>sodium_crypto_stream_xchacha20_keygen()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a pseudorandom stream that can be used with <strong>sodium_crypto_stream_xchacha20_xor()</strong>.


id: sodium_crypto_stream_xchacha20_keygen
type: function
doc:
<comment>Description:</comment>
  Returns a secure random key
  
  Returns a secure random key for use with <strong>sodium_crypto_stream_xchacha20()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte secure random key for use with <strong>sodium_crypto_stream_xchacha20()</strong>.


id: sodium_crypto_stream_xchacha20_xor
type: function
doc:
<comment>Description:</comment>
  Encrypts a message using a nonce and a secret key (no authentication)
  
  Encrypts a <strong>$message</strong> using a <strong>$nonce</strong> and a secret <strong>$key</strong> (no authentication).
  
  This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to
  combine the ciphertext with a Message Authentication Code, for example with
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_encrypt()</strong> function, or <strong>sodium_crypto_auth()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to encrypt.
  <info>string</info>  <strong>$nonce</strong>    24-byte nonce.
  <info>string</info>  <strong>$key</strong>      Key, possibly generated from <strong>sodium_crypto_stream_xchacha20_keygen()</strong>.

<comment>Return:</comment>
  <info>string</info>  Encrypted message.

<comment>See Also:</comment>
   * <strong>sodium_crypto_stream_xchacha20_xor_ic()</strong>


id: sodium_crypto_stream_xchacha20_xor_ic
type: function
doc:
<comment>Description:</comment>
  Encrypts a message using a nonce and a secret key (no authentication)
  
  The function is similar to <strong>sodium_crypto_stream_xchacha20_xor()</strong> but adds the ability to set the
  initial value of the block counter to a non-zero value. This permits direct access to any block
  without having to compute the previous ones.
  
  This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to
  combine the ciphertext with a Message Authentication Code, for example with
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_encrypt()</strong> function, or <strong>sodium_crypto_auth()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to encrypt.
  <info>string</info>  <strong>$nonce</strong>    24-byte nonce.
  <info>int</info>     <strong>$counter</strong>  The initial value of the block counter.
  <info>string</info>  <strong>$key</strong>      Key, possibly generated from <strong>sodium_crypto_stream_xchacha20_keygen()</strong>.

<comment>Return:</comment>
  <info>string</info>  Encrypted message, Bei einem Fehler wird <info>false</info> zurückgegeben..

<comment>See Also:</comment>
   * <strong>sodium_crypto_stream_xchacha20_xor()</strong>


id: sodium_crypto_stream_xor
type: function
doc:
<comment>Description:</comment>
  Encrypt a message without authentication
  
  This function encrypts a message with XSalsa20, but does not provide any ciphertext guarantees
  about the plaintext.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to encrypt
  <info>string</info>  <strong>$nonce</strong>    A number that must be only used once, per message. 24 bytes long. This is a
                    large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>      Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Encrypted message.


id: sodium_hex2bin
type: function
doc:
<comment>Description:</comment>
  Dekodiert eine hexadezimal kodierte binäre Zeichenkette
  
  Dekodiert eine hexadezimal kodierte binäre Zeichenkette.
  
  Wie <strong>sodium_bin2hex()</strong> ist auch <strong>sodium_hex2bin()</strong> resistent gegen Seitenkanalattacken, während
  <strong>hex2bin()</strong> dies nicht ist.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Hexadezimale Darstellung der Daten.
  <info>string</info>  <strong>$ignore</strong>  Optionales String-Argument für zu ignorierende Zeichen.

<comment>Return:</comment>
  <info>string</info>  Gibt die binäre Darstellung der angegebenen Zeichenkette (<strong>$string</strong>) zurück.


id: sodium_increment
type: function
doc:
<comment>Description:</comment>
  Inkrementieren einer großen Zahl
  
  Behandelt die gegebene Zeichenkette als Little-Endian-Ganzzahl ohne Vorzeichen und erhöht sie dann
  um 1. Diese Funktion läuft zeitkonstant.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Zeichenkette, die erhöht werden soll.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: sodium_memcmp
type: function
doc:
<comment>Description:</comment>
  Prüfung auf Gleichheit bei konstanter Zeit
  
  Vergleich zweier Zeichenketten in konstanter Zeit.
  
  In der Praxis sollte man statt dieser Funktion fast immer <strong>hash_equals()</strong> verwenden, da diese
  Funktion die gleiche Logik bietet, aber einen <info>bool</info>-Rückgabewert anstelle eines <info>int</info>-Rückgabewertes
  hat. Wenn der Rückgabewert des Vergleichs in einer Berechnung verwendet wird, welche zeitkonstant
  sein soll, und daher eine Typkonvertierung vermieden werden soll, ist <strong>sodium_memcmp()</strong> ein idealer
  Ersatz.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Zu vergleichende Zeichenkette
  <info>string</info>  <strong>$string2</strong>  Andere Zeichenkette zum Vergleich

<comment>Return:</comment>
  <info>int</info>  Gibt <return>0</return> zurück, wenn beide Zeichenketten gleich sind; <return>-1</return> im anderen Fall.


id: sodium_memzero
type: function
doc:
<comment>Description:</comment>
  Überschreibt eine Zeichenkette mit einem Nullzeichen
  
  <strong>sodium_memzero()</strong> überschreibt eine Zeichenkette mit Nullzeichen.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Zeichenkette.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: sodium_pad
type: function
doc:
<comment>Description:</comment>
  Fügt Fülldaten hinzu
  
  Füllt den rechten Teil einer Zeichenkette mit Fülldaten auf. Diese Funktion arbeitet zeitkonstant.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      Zeichenkette ohne Fülldaten.
  <info>int</info>     <strong>$block_size</strong>  Die Zeichenkette wird aufgefüllt, bis sie ein gerades Vielfaches der
                       Blockgröße ist.

<comment>Return:</comment>
  <info>string</info>  Zeichenkette mit Fülldaten.


id: sodium_unpad
type: function
doc:
<comment>Description:</comment>
  Entfernt Fülldaten
  
  Entfernt Fülldaten von einer Zeichenkette. Diese Funktion arbeitet zeitkonstant.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      Zeichenkette mit Fülldaten.
  <info>int</info>     <strong>$block_size</strong>  Die Blockgröße des Paddings.

<comment>Return:</comment>
  <info>string</info>  Zeichenkette ohne Fülldaten.


id: solr_get_version
type: function
doc:
<comment>Description:</comment>
  Returns the current version of the Apache Solr extension
  
  This function returns the current version of the extension as a string.

<comment>Return:</comment>
  <info>string</info>  It returns a string on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>SolrUtils::getSolrVersion()</strong>


id: sort
type: function
doc:
<comment>Description:</comment>
  Sortiert ein Array in aufsteigender Reihenfolge
  
  Sortiert <strong>$array</strong> nach Werten in aufsteigender Reihenfolge.
  
  Wenn zwei Mitglieder als identisch verglichen werden, behalten sie ihre ursprüngliche Reihenfolge
  bei. Vor PHP 8.0.0 war die relative Sortierung im sortierten Array nicht definiert.
  
  Diese Funktion weist den
  Elementen des Arrays <strong>$array</strong> neue Schlüssel zu.
  Bestehende Schlüssel, die bereits zugewiesen wurden, werden entfernt
  statt einfach nur die Schlüssel neu anzuordnen
  
  Setzt den internen Zeiger des Arrays auf das erste Element zurück.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  Das Eingabe-Array.
  <info>int</info>    <strong>$flags</strong>  Der optionale zweite Parameter <strong>$flags</strong> kann mit folgenden Werten genutzt werden, um
                 das Sortierverhalten zu ändern:
                 
                 Flags für den Sortiertyp: <info>SORT_REGULAR</info> - vergleicht Elemente normal; die Details
                 werden im Abschnitt Vergleichsoperatoren beschrieben. <info>SORT_NUMERIC</info> - vergleicht
                 Elemente numerisch. <info>SORT_STRING</info> - vergleicht Elemente als Zeichenketten.
                 <info>SORT_LOCALE_STRING</info> - vergleicht Elemente als Zeichenketten, basierend auf dem
                 aktuellen Gebietsschema. Es wird das Gebietsschema verwendet, das mit <strong>setlocale()</strong>
                 geändert werden kann. <info>SORT_NATURAL</info> - vergleicht Elemente als Zeichenketten wie
                 <strong>natsort()</strong> mit "natürlicher Ordnung". <info>SORT_FLAG_CASE</info> - kann kombiniert werden
                 (bitweise ODER) mit <info>SORT_STRING</info> oder <info>SORT_NATURAL</info>, um Zeichenketten unter
                 Berücksichtigung der Groß- und Kleinschreibung zu sortieren.
                 
                 <info>SORT_REGULAR</info> - vergleicht Elemente normal; die Details werden im Abschnitt
                 Vergleichsoperatoren beschrieben.
                 
                 <info>SORT_NUMERIC</info> - vergleicht Elemente numerisch.
                 
                 <info>SORT_STRING</info> - vergleicht Elemente als Zeichenketten.
                 
                 <info>SORT_LOCALE_STRING</info> - vergleicht Elemente als Zeichenketten, basierend auf dem
                 aktuellen Gebietsschema. Es wird das Gebietsschema verwendet, das mit <strong>setlocale()</strong>
                 geändert werden kann.
                 
                 <info>SORT_NATURAL</info> - vergleicht Elemente als Zeichenketten wie <strong>natsort()</strong> mit "natürlicher
                 Ordnung".
                 
                 <info>SORT_FLAG_CASE</info> - kann kombiniert werden (bitweise ODER) mit <info>SORT_STRING</info> oder
                 <info>SORT_NATURAL</info>, um Zeichenketten unter Berücksichtigung der Groß- und Kleinschreibung
                 zu sortieren.

<comment>Return:</comment>
  <info>bool</info>  Gibt immer <info>true</info> zurück.

<comment>See Also:</comment>
   * <strong>rsort()</strong>
   * Den Vergleich von Arraysortierungsfunktionen


id: soundex
type: function
doc:
<comment>Description:</comment>
  Berechnet die Laut-Ähnlichkeit eines Strings
  
  Errechnet den Wert der Laut-Ähnlichkeit von <strong>$string</strong>.
  
  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.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Die Eingabezeichenkette.

<comment>Return:</comment>
  <info>string</info>  Gibt den Soundex-Schlüssel als String mit vier Zeichen zurück. Wenn mindestens ein
          Buchstabe in <strong>$string</strong> enthalten ist, beginnt der zurückgegebene String mit einem
          Buchstaben. Andernfalls wird <return>"0000"</return> zurückgegeben.

<comment>See Also:</comment>
   * <strong>levenshtein()</strong>
   * <strong>metaphone()</strong>
   * <strong>similar_text()</strong>


id: spl_autoload
type: function
doc:
<comment>Description:</comment>
  Default implementation for __autoload()
  
  This function is intended to be used as a default implementation for <strong>__autoload()</strong>. If nothing else
  is specified and <strong>spl_autoload_register()</strong> is called without any parameters then this function will
  be used for any later call to <strong>__autoload()</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$class</strong>            The name of the class (and namespace) being instantiated.
  <info>string|null</info>  <strong>$file_extensions</strong>  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.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: spl_autoload_call
type: function
doc:
<comment>Description:</comment>
  Try all registered __autoload() functions to load the requested class
  
  This function can be used to manually search for a class or interface using the registered
  __autoload functions.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>  The class name being searched.

<comment>Return:</comment>
  <info>void</info>  Es wird kein Wert zurückgegeben.


id: spl_autoload_extensions
type: function
doc:
<comment>Description:</comment>
  Registriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück
  
  Diese Funktion kann die Dateiendungen, die in der <strong>__autoload()</strong> Fallback-Funktion <strong>spl_autoload()</strong>
  verwendet werden, prüfen und ändern.
  
  Es sollte sich kein Leerzeichen zwischen den definierten Dateierweiterung befinden.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$file_extensions</strong>  Wenn <info>null</info>, werden alle aktuellen  Endungen durch Kommas getrennt
                                 zurückgegeben. Um die Liste mit den Dateiendungen zu modifizieren,
                                 einfach die Funktion noch einmal aufrufen mit einer  neuen Liste
                                 von Dateiendungen, die durch Kommas getrennt in einer einzigen
                                 Zeichenkette übergeben werden.

<comment>Return:</comment>
  <info>string</info>  Eine durch Kommata getrennte Liste mit den Voreingestellten Dateiendungen für
          <strong>spl_autoload()</strong>.


id: spl_autoload_functions
type: function
doc:
<comment>Description:</comment>
  Liefert alle registrierten __autoload()-Funktionen
  
  Gibt alle registrierten __autoload()-Funktionen zurück.

<comment>Return:</comment>
  <info>array</info>  Ein <info>Array</info> aller registrierten __autoload-Funktionen. Ist keine Funktion registriert oder
         die Autoload-Warteschlange nicht aktiviert, wird ein leeres Array zurückgegeben.


id: spl_autoload_register
type: function
doc:
<comment>Description:</comment>
  Register given function as __autoload() implementation
  
  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 <strong>__autoload()</strong> function then this function must be explicitly
  registered on the __autoload queue. This is because <strong>spl_autoload_register()</strong> will effectively
  replace the engine cache for the <strong>__autoload()</strong> function by either <strong>spl_autoload()</strong> or
  <strong>spl_autoload_call()</strong>.
  
  If there must be multiple autoload functions, <strong>spl_autoload_register()</strong>  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,  <strong>__autoload()</strong> may only be defined once.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>  The autoload function being registered. If <info>null</info>, then the default
                            implementation of <strong>spl_autoload()</strong> will be registered.
                            
                            The <strong>$class</strong> will not contain the leading backslash of a fully-qualified
                            identifier.
  <info>bool</info>           <strong>$throw</strong>     This parameter specifies whether <strong>spl_autoload_register()</strong> should throw
                            exceptions when the <strong>$callback</strong> cannot be registered.
                            
                            This parameter is ignored as of PHP 8.0.0, and a notice will be emitted
                            if set to <info>false</info>. <strong>spl_autoload_register()</strong> will now always throw a
                            <class>TypeError</class> on invalid arguments.
  <info>bool</info>           <strong>$prepend</strong>   If true, <strong>spl_autoload_register()</strong> will prepend the autoloader on the
                            autoload queue instead of appending it.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.

<comment>See Also:</comment>
   * <strong>__autoload()</strong>


id: spl_autoload_unregister
type: function
doc:
<comment>Description:</comment>
  Unregister given function as __autoload() implementation
  
  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.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The autoload function being unregistered.

<comment>Return:</comment>
  <info>bool</info>  Gibt bei Erfolg <info>true</info> zurück. Bei einem Fehler wird <info>false</info> zurückgegeben.


id: spl_classes
type: function
doc:
<comment>Description:</comment>
  Return available SPL classes
  
  This function returns an array with the current available SPL classes.

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> containing the currently available SPL classes.


id: spl_object_hash
type: function
doc:
<comment>Description:</comment>
  Return hash id for given object
    
  
  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. This behavior is similar to
  <strong>spl_object_id()</strong>.

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  Any object.

<comment>Return:</comment>
  <info>string</info>  A string that is unique for each currently existing object and is always the same for each
          object.

<comment>See Also:</comment>
   * <strong>spl_object_id()</strong>


id: spl_object_id
type: function
doc:
<comment>Description:</comment>
  Return the integer object handle for given object
    
  
  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 <strong>spl_object_hash()</strong>.

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  Any object.

<comment>Return:</comment>
  <info>int</info>  An integer identifier that is unique for each currently existing object and is always the
       same for each object.


id: sprintf
type: function
doc:
<comment>Description:</comment>
  Gibt einen formatierten String zurück
  
  Gibt eine anhand des Formatierungs-Strings <strong>$format</strong> gebildete Zeichenkette zurück.

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  Der Formatstring setzt sich aus keiner oder mehreren Anweisungen zusammen:
                   Normale Zeichen (abgesehen von <return>%</return>), die direkt in das Ergebnis kopiert werden und
                   Konvertierungsanweisungen, die jeweils ihre eigenen Parameter abrufen.
                   
                   Eine Konvertierungsanweisung folgt diesem Prototypen:
                   <return>%[ArgNum$][Flags][Weite][.Präzision]Spezifizierer</return>.
                   
                   Eine Ganzzahl gefolgt von einem Dollarzeichen <return>$</return>, die die Nummer des Arguments
                   angibt, das für die Konversion verwendet werden soll.
                   
                   FlagsFlagBeschreibung<return>-</return> Linksbündig innerhalb der angegebenen Feldbreite;
                   Rechtsbündig ist der Standard <return>+</return> Positive Zahlen mit einem Pluszeichen <return>+</return>;
                   Standardmäßig werden nur negative Zahlen mit negativen Vorzeichen ausgegeben <return>
                   </return>(Leerzeichen) Füllt das Ergebnis mit Leerzeichen auf. Dies ist der Standard. <return>0</return>
                   Füllt nach Links mit Nullen auf. Mit dem <return>s</return>-Spezifizierer kann dies auch nach
                   rechts mit Nullen auffüllen. <return>'</return>(Zeichen) Füllt das Ergebnis mit dem angegebenen
                   Zeichen auf.
                   
                   Entweder eine Ganzzahl die angibt, wie viele Zeichen (Minimum) das
                   Konvertierungsergebnis haben soll oder <return>*</return>. Wenn <return>*</return> verwendet wird, wird die Breite
                   als zusätzlicher ganzzahliger Wert angegeben, der bestimmt, wie viele Zeichen vor
                   dem durch den Spezifizierer formatierten Wert stehen sollen.
                   
                   Ein Punkt <return>.</return>, optional gefolgt von einer Ganzzahl oder <return>*</return>, dessen Bedeutung vom
                   Spezifizierer abhängt:  Für die Spezifizierer <return>e</return>, <return>E</return>, <return>f</return> und <return>F</return>: Dies stellt die
                   Anzahl der Nachkommastellen an, die nach dem Dezimaltrennzeichen ausgegeben
                   werden soll (Standardmäßig ist dies 6).  Für die Spezifizierer <return>g</return>, <return>G</return>, <return>h</return> und <return>H</return>: Die
                   maximale Anzahl der auszugebenenden signifikanten Nachkommastellen.  Für den <return>s</return>
                   Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale Anzahl an
                   Zeichen in der Zeichenkette angibt.   Wenn der Punkt ohne einen expliziten Wert
                   für die Genauigkeit angegeben wird, wird 0 angenommen. Wenn <return>*</return> verwendet wird,
                   wird die Genauigkeit als zusätzliche Ganzzahl vor dem durch den Bezeichner
                   formatierten Wert angegeben.
                   
                   Für die Spezifizierer <return>e</return>, <return>E</return>, <return>f</return> und <return>F</return>: Dies stellt die Anzahl der Nachkommastellen
                   an, die nach dem Dezimaltrennzeichen ausgegeben werden soll (Standardmäßig ist
                   dies 6).
                   
                   Für die Spezifizierer <return>g</return>, <return>G</return>, <return>h</return> und <return>H</return>: Die maximale Anzahl der auszugebenenden
                   signifikanten Nachkommastellen.
                   
                   Für den <return>s</return> Spezifizierer: Verhält sich wie ein Abschneidepunkt, der eine maximale
                   Anzahl an Zeichen in der Zeichenkette angibt.
                   
                   Wenn der Punkt ohne einen expliziten Wert für die Genauigkeit angegeben wird,
                   wird 0 angenommen. Wenn <return>*</return> verwendet wird, wird die Genauigkeit als zusätzliche
                   Ganzzahl vor dem durch den Bezeichner formatierten Wert angegeben.
                   
                   SpezifiziererSpezifiziererBeschreibung<return>%</return> Ein Prozentzeichen. Kein Parameter nötig.
                   <return>b</return> Der Parameter wird als Ganzzahl behandelt und als Binärzahl ausgegeben. <return>c</return> Der
                   Parameter wird als Ganzzahl behandelt und als Zeichen aus dem ASCII-Zeichensatz
                   ausgegeben. <return>d</return> Der Parameter wird als Ganzzahl behandelt und als
                   (vorzeichenbehaftete) Dezimalzahl ausgegeben. <return>e</return> Der Parameter wird als Zahl in
                   wissenschaftlicher Schreibweise (z. B. 1.2e+2) behandelt. <return>E</return> Wie der Spezifizierer
                   <return>e</return>, aber schreibt einen Großbuchstaben (z. B. 1.2E+2). <return>f</return> Der Parameter wird als
                   Gleitkommazahl betrachtet und als Gleitkommazahl ausgegeben (abhängig von der
                   Locale). <return>F</return> Der Parameter wird als Gleitkommazahl betrachtet und als
                   Gleitkommazahl (unabhängig von der Locale) ausgegeben. <return>g</return> Generelles Format.  Sei
                   P gleich der Genauigkeit, wenn nicht Null, 6, wenn die Genauigkeit nicht
                   angegeben ist, oder 1 wenn die Genauigkeit Null ist. Dann, wenn eine
                   Konvertierung mittels E einen Exponenten von X hätte:  Wenn P &gt; X ≥ −4,
                   erfolgt die Konvertierung mit Spezifizierer f und Genauigkeit P - (X + 1),
                   andernfalls mit Spezifizierer e und Genauigkeit P - 1. <return>G</return> Wie der Spezifizierer <return>g</return>,
                   aber es wird <return>E</return> und <return>f</return> verwendet. <return>h</return> Wie der Spezifizierer <return>g</return>, aber es werden <return>F</return>
                   verwendet. Verfügbar ab PHP 8.0.0. <return>H</return> Wie der Spezifizierer <return>g</return>, aber es werden <return>E</return>
                   und <return>F</return> verwendet. Verfügbar ab PHP 8.0.0. <return>o</return> Der Parameter wird als Ganzzahl
                   betrachtet und als Oktalzahl ausgegeben. <return>s</return> Der Parameter wird als Zeichenkette
                   betrachtet und ausgegeben. <return>u</return> Der Parameter wird als Ganzzahl betrachtet und als
                   vorzeichenlose Dezimalzahl ausgegeben. <return>x</return> Der Parameter wird als Ganzzahl
                   betrachtet und als Hexadezimalzahl (mit Kleinbuchstaben) ausgegeben. <return>X</return> Der
                   Parameter wird als Ganzzahl betrachtet und als Hexadezimalzahl (mit
                   Großbuchstaben) ausgegeben.
                   
                   Generelles Format.
                   
                   Sei P gleich der Genauigkeit, wenn nicht Null, 6, wenn die Genauigkeit nicht
                   angegeben ist, oder 1 wenn die Genauigkeit Null ist. Dann, wenn eine
                   Konvertierung mittels E einen Exponenten von X hätte:
                   
                   Wenn P &gt; X ≥ −4, erfolgt die Konvertierung mit Spezifizierer f und Genauigkeit
                   P - (X + 1), andernfalls mit Spezifizierer e und Genauigkeit P - 1.
                   
                   Der Spezifizierer <return>c</return> ignoriert Auffüllung und Weite.
                   
                   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-BehandlungTypSpezifizierer<info>string</info><return>s</return><info>int</info><return>d</return>, <return>u</return>, <return>c</return>, <return>o</return>, <return>x</return>, <return>X</return>, <return>b</return><info>float</info><return>e</return>, <return>E</return>, <return>f</return>, <return>F</return>, <return>g</return>, <return>G</return>,
                   <return>h</return>, <return>H</return>
  <info>mixed</info>   <strong>$values</strong>  

<comment>Return:</comment>
  <info>string</info>  Gibt eine anhand des Formatierungs-Strings <strong>$format</strong> gebildete Zeichenkette zurück.

<comment>See Also:</comment>
   * <strong>printf()</strong>
   * <strong>fprintf()</strong>
   * <strong>vprintf()</strong>
   * <strong>vsprintf()</strong>
   * <strong>vfprintf()</strong>
   * <strong>sscanf()</strong>
   * <strong>fscanf()</strong>
   * <strong>number_format()</strong>
   * <strong>date()</strong>


