1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-23 23:02:13 +01:00

Sync with EN

This commit is contained in:
Martin Samesch
2024-10-27 22:33:38 +01:00
parent ef8d140405
commit 8f9f0e3001
10 changed files with 317 additions and 299 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 9a511f92cb6574fb8a2622e204879303d0dab9d8 Maintainer: tihox Status: ready -->
<!-- EN-Revision: d92352faa89a7faf6031ecb39d48b53d70236ce3 Maintainer: tihox Status: ready -->
<refentry xml:id="function.dom-import-simplexml" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>dom_import_simplexml</refname>
@@ -9,19 +9,23 @@
<classname>SimpleXMLElement</classname>-Objekt
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>DOMElement</type><methodname>dom_import_simplexml</methodname>
<type class="union"><type>DOMAttr</type><type>DOMElement</type></type><methodname>dom_import_simplexml</methodname>
<methodparam><type>object</type><parameter>node</parameter></methodparam>
</methodsynopsis>
<para>
Diese Funktion verwendet den Knoten <parameter>node</parameter> der Klasse
<link linkend="ref.simplexml">SimpleXML</link> und macht ihn zu einem
<classname>DOMElement</classname>-Knoten. Dieses neue Objekt kann als
nativer <classname>DOMElement</classname>-Knoten verwendet werden..
Diese Funktion verwendet das angegebene Attribut oder Element
<parameter>node</parameter> (eine
<classname>SimpleXMLElement</classname>-Instanz) und erstellt einen
<classname>DOMAttr</classname>- bzw. <classname>DOMElement</classname>-Knoten.
Der neue <classname>DOMNode</classname> verweist auf denselben
zugrundeliegenden XML-Knoten wie das <classname>SimpleXMLElement</classname>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -30,20 +34,22 @@
<term><parameter>node</parameter></term>
<listitem>
<para>
Der <classname>SimpleXMLElement</classname>-Knoten.
Der zu importierende Attribut- oder Elementknoten (eine Instanz von
<classname>SimpleXMLElement</classname>).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Der hinzugefügte <classname>DOMElement</classname>-Knoten.
Das <classname>DOMAttr</classname> oder <classname>DOMElement</classname>.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
@@ -65,11 +71,11 @@
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Importiert SimpleXML in DOM mit der Funktion <function>dom_import_simplexml</function></title>
<title>SimpleXML mit der Funktion <function>dom_import_simplexml</function> in DOM importieren</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -83,7 +89,7 @@ if ($sxe === false) {
$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
echo 'Fehler bei Konvertierung zu XML';
echo 'Fehler bei der Konvertierung zu XML';
exit;
}
@@ -96,8 +102,41 @@ echo $dom->saveXML();
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
<?xml version="1.0"?>
<books><book><title>blah</title></book></books>
]]>
</screen>
</example>
<example>
<title>SimpleXML in DOM importieren und SimpleXML über DOM modifizieren</title>
<simpara>
Die Fehlerbehandlung wurde der Kürze halber weggelassen.
</simpara>
<programlisting role="php">
<![CDATA[
<?php
$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');
$elt = dom_import_simplexml($sxe);
$elt->setAttribute("foo", "bar");
echo $sxe->asXML();
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
<?xml version="1.0"?>
<books foo="bar"><book><title>blah</title></book></books>
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -106,6 +145,7 @@ echo $dom->saveXML();
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 497c40ac164d5873fd87f622dfdeb5206392b446 Maintainer: nobody Status: ready -->
<!-- EN-Revision: 4cbf706028112c177d4a6a0a81a3e4520ae839e9 Maintainer: nobody Status: ready -->
<refentry xml:id="function.openssl-csr-get-subject" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>openssl_csr_get_subject</refname>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5bc68add3da3cd18c40f851e944b15095d3a26aa Maintainer: jaenecke Status: ready -->
<!-- EN-Revision: b6d0da041ac2b5eee3820bf2c2062872f4459dfe Maintainer: jaenecke Status: ready -->
<refentry xml:id="function.openssl-csr-new" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>openssl_csr_new</refname>
@@ -10,9 +10,9 @@
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>OpenSSLCertificateSigningRequest</type><type>false</type></type><methodname>openssl_csr_new</methodname>
<type class="union"><type>OpenSSLCertificateSigningRequest</type><type>bool</type></type><methodname>openssl_csr_new</methodname>
<methodparam><type>array</type><parameter>distinguished_names</parameter></methodparam>
<methodparam><modifier role="attribute">#[\SensitiveParameter]</modifier><type>OpenSSLAsymmetricKey</type><parameter role="reference">private_key</parameter></methodparam>
<methodparam><modifier role="attribute">#[\SensitiveParameter]</modifier><type class="union"><type>OpenSSLAsymmetricKey</type><type>null</type></type><parameter role="reference">private_key</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>null</type></type><parameter>options</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>null</type></type><parameter>extra_attributes</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
@@ -42,11 +42,14 @@
<term><parameter>private_key</parameter></term>
<listitem>
<para>
Der <parameter>private_key</parameter> muss ein privater Schlüssel
sein, der vorher mit <function>openssl_pkey_new</function> (oder einer
anderen Funktion aus der openssl_pkey-Familie) erzeugt wurde. Der
entsprechende öffentliche Teil des Schlüssels wird verwendet, um den
<acronym>CSR</acronym> zu signieren.
<parameter>private_key</parameter> muss auf einen zuvor mit
<function>openssl_pkey_new</function> erzeugten (oder anderweitig von
der openssl_pkey-Familie erhaltenen) privaten Schlüssel oder auf eine
&null;-Variable gesetzt werden. Wenn der Wert &null; ist, wird ein neuer
privater Schlüssel basierend auf den übergebenen
<parameter>options</parameter> erzeugt und der übergebenen Variablen
zugewiesen. Der zugehörige öffentliche Teil des Schlüssels wird zum
Signieren des <acronym>CSR</acronym> verwendet.
</para>
</listitem>
</varlistentry>
@@ -55,16 +58,15 @@
<listitem>
<para>
In der Standardeinstellung werden die Informationen für die Anfrage aus
der <literal>openssl.conf</literal> ihres Systems verwendet. Sie können
einen Konfigurationsabsschnitt mit dem Schlüssel
<literal>config_section_section</literal> des Arrays
<parameter>options</parameter> setzen. Außerdem haben Sie die
Möglichkeit, eine alternative OpenSSL-Konfigurationsdatei anzugeben,
indem Sie den Wert des Schlüssels <literal>config</literal> auf den
Pfad zu der Datei setzen, die Sie verwenden möchten. Die unten in der
Tabelle aufgeführten Schlüssel, soweit in
der <literal>openssl.conf</literal> des Systems verwendet; ein Abschnitt
der Konfigurationsdatei kann durch Setzen des Schlüssels
<literal>config_section</literal> in <parameter>options</parameter>
angegeben werden. Außerdem kann eine alternative
OpenSSL-Konfigurationsdatei angegeben, indem der Wert des Schlüssels
<literal>config</literal> auf den Pfad der zu verwendenden Datei gesetzt
wird. Die unten in der Tabelle aufgeführten Schlüssel, soweit in
<parameter>options</parameter> vorhanden, verhalten sich genau gleich
wie die entsprechenden Werte in der <literal>openssl.conf</literal>
wie die entsprechenden Werte in der <literal>openssl.conf</literal>.
<table>
<title>Überschreiben der Konfiguration</title>
<tgroup cols="3">
@@ -187,7 +189,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Gibt den <acronym>CSR</acronym> zurück. &return.falseforfailure;
Gibt bei Erfolg die <acronym>CSR</acronym> zurück; &true; wenn die
CSR-Erstellung erfolgreich war, aber das Signieren fehlgeschlagen ist.
&return.falseforfailure;
</para>
</refsect1>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e5ab2937efd9b1d7184993e0fdfa957893f7f827 Maintainer: cmb Status: ready -->
<!-- EN-Revision: 7a016103e0d568448f5985dfd945092d69d5d59c Maintainer: cmb Status: ready -->
<refentry xml:id="function.openssl-encrypt" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>openssl_encrypt</refname>
@@ -83,9 +83,10 @@
<term><parameter>iv</parameter></term>
<listitem>
<para>
Die Passphrase. Ist die Passphrase kürzer als erwartet, wird sie
stillschweigend mit <literal>NUL</literal>-Zeichen aufgefüllt; ist die
Passphrase länger als erwartet, wird sie stillschweigend abgeschnitten.
Der Initialisierungsvektor (darf nicht &null; sein). Ist der IV kürzer
als erwartet, wird er mit <literal>NUL</literal>-Zeichen aufgefüllt und
eine Warnung ausgegeben; ist die Passphrase länger als erwartet, wird
sie abgeschnitten und eine Warnung ausgegeben.
</para>
</listitem>
</varlistentry>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5671f3fe71c2b96d129896e1f6ed73cf081e5246 Maintainer: joshuaruesweg Status: ready -->
<!-- EN-Revision: 01cb7d495c454cea3828d75e181241b6ac3f15ae Maintainer: joshuaruesweg Status: ready -->
<appendix xml:id="sodium.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.constants;
@@ -77,6 +77,94 @@
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis128l-keybytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis128l-nsecbytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS128L_NSECBYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis128l-npubbytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis128l-abytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS128L_ABYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis256-keybytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS256_KEYBYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis256-nsecbytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS256_NSECBYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis256-npubbytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS256_NPUBBYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aegis256-abytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AEGIS256_ABYTES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar ab PHP 8.4.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.sodium-crypto-aead-aes256gcm-keybytes">
<term>
<constant>SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES</constant>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: eabde0419cf90f596f60db00e31fcb6ebe41ac55 Maintainer: sammywg Status: ready -->
<!-- EN-Revision: 27ae0a4a16cdfc868a884c0f0dad7023b5f2709c Maintainer: sammywg Status: ready -->
<refentry xml:id="function.ltrim" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>ltrim</refname>
@@ -14,84 +14,42 @@
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>characters</parameter><initializer>" \n\r\t\v\x00"</initializer></methodparam>
</methodsynopsis>
<para>
<simpara>
Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings.
</para>
</simpara>
<simpara>
Ohne den zweiten Parameter entfernt <function>ltrim</function> diese
Zeichen:
</simpara>
&strings.stripped.characters;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Die Eingabezeichenkette.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
<para>
Sie können mittels des <parameter>characters</parameter>-Parameters
eigene Zeichen angeben, die Sie entfernen lassen möchten. Führen Sie
einfach alle zu löschenden Zeichen auf. Mittels <literal>..</literal>
können Sie einen Bereich von Zeichen benennen.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<simpara>
Die Eingabezeichenkette.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
&strings.parameter.characters.optional;
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Diese Funktion gibt den String <parameter>string</parameter> zurück, von
dessen Anfang alle Whitespaces entfernt wurden. Ohne den zweiten Parameter
entfernt <function>ltrim</function> diese Zeichen:
<!-- sorted by importance. Printed 3 times: trim, ltrim, rtrim -->
<itemizedlist>
<listitem>
<simpara>
" " (<acronym>ASCII</acronym> <literal>32</literal>
(<literal>0x20</literal>)), ein einfaches Leerzeichen.
</simpara>
</listitem>
<listitem>
<simpara>
"\t" (<acronym>ASCII</acronym> <literal>9</literal>
(<literal>0x09</literal>)), ein Tabulator.
</simpara>
</listitem>
<listitem>
<simpara>
"\n" (<acronym>ASCII</acronym> <literal>10</literal>
(<literal>0x0A</literal>)), ein Zeilenvorschub (line feed).
</simpara>
</listitem>
<listitem>
<simpara>
"\r" (<acronym>ASCII</acronym> <literal>13</literal>
(<literal>0x0D</literal>)), ein Wagenrücklauf-Zeichen (carriage return).
</simpara>
</listitem>
<listitem>
<simpara>
"\0" (<acronym>ASCII</acronym> <literal>0</literal>
(<literal>0x00</literal>)), das <literal>NUL</literal>-Byte.
</simpara>
</listitem>
<listitem>
<simpara>
"\v" (<acronym>ASCII</acronym> <literal>11</literal>
(<literal>0x0B</literal>)), ein vertikaler Tabulator.
</simpara>
</listitem>
</itemizedlist>
</para>
dessen Anfang alle Whitespaces entfernt wurden.
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: eabde0419cf90f596f60db00e31fcb6ebe41ac55 Maintainer: sammywg Status: ready -->
<!-- EN-Revision: 27ae0a4a16cdfc868a884c0f0dad7023b5f2709c Maintainer: sammywg Status: ready -->
<refentry xml:id="function.rtrim" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>rtrim</refname>
@@ -14,86 +14,42 @@
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>characters</parameter><initializer>" \n\r\t\v\x00"</initializer></methodparam>
</methodsynopsis>
<para>
<simpara>
Diese Funktion gibt den String <parameter>string</parameter> zurück, von
dessen Ende alle Whitespaces (oder andere Zeichen) entfernt wurden.
</para>
<para>
Ohne den zweiten Parameter entfernt <function>rtrim</function> diese Zeichen:
<!-- sorted by importance. Printed 3 times: trim, ltrim, rtrim -->
<itemizedlist>
<listitem>
<simpara>
" " (<acronym>ASCII</acronym> <literal>32</literal>
(<literal>0x20</literal>)), ein einfaches Leerzeichen.
</simpara>
</listitem>
<listitem>
<simpara>
"\t" (<acronym>ASCII</acronym> <literal>9</literal>
(<literal>0x09</literal>)), ein Tabulator.
</simpara>
</listitem>
<listitem>
<simpara>
"\n" (<acronym>ASCII</acronym> <literal>10</literal>
(<literal>0x0A</literal>)), ein Zeilenvorschub (line feed).
</simpara>
</listitem>
<listitem>
<simpara>
"\r" (<acronym>ASCII</acronym> <literal>13</literal>
(<literal>0x0D</literal>)), ein Wagenrücklauf-Zeichen (carriage return).
</simpara>
</listitem>
<listitem>
<simpara>
"\0" (<acronym>ASCII</acronym> <literal>0</literal>
(<literal>0x00</literal>)), das <literal>NULL</literal>-Byte.
</simpara>
</listitem>
<listitem>
<simpara>
"\v" (<acronym>ASCII</acronym> <literal>11</literal>
(<literal>0x0B</literal>)), ein vertikaler Tabulator.
</simpara>
</listitem>
</itemizedlist>
</para>
</simpara>
<simpara>
Ohne den zweiten Parameter entfernt <function>rtrim</function> diese
Zeichen:
</simpara>
&strings.stripped.characters;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Die Eingabezeichenkette.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
<para>
Sie können mittels des <parameter>characters</parameter>-Parameters
eigene Zeichen angeben, die Sie entfernen lassen möchten. Führen Sie
einfach alle zu löschenden Zeichen auf. Mittels <literal>..</literal>
können Sie einen Bereich von Zeichen benennen.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<simpara>
Die Eingabezeichenkette.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
&strings.parameter.characters.optional;
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Gibt die modifizierte Zeichenkette zurück.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">
@@ -149,12 +105,10 @@ string(15) " Example string"
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>trim</function></member>
<member><function>ltrim</function></member>
</simplelist>
</para>
<simplelist>
<member><function>trim</function></member>
<member><function>ltrim</function></member>
</simplelist>
</refsect1>
</refentry>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 3d38c9a1ce92c93fdf8c43f067c7ae7b4ad73885 Maintainer: sammywg Status: ready -->
<!-- EN-Revision: 27ae0a4a16cdfc868a884c0f0dad7023b5f2709c Maintainer: sammywg Status: ready -->
<refentry xml:id="function.trim" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>trim</refname>
@@ -14,87 +14,40 @@
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>characters</parameter><initializer>" \n\r\t\v\x00"</initializer></methodparam>
</methodsynopsis>
<para>
<simpara>
Die Funktion entfernt Whitespaces am Anfang und Ende von
<parameter>string</parameter> und gibt den String dann zurück. Ohne
Verwendung des zweiten Parameters entfernt <function>trim</function>
folgende Zeichen:
<!-- sorted by importance. Printed 3 times: trim, ltrim, rtrim -->
<itemizedlist>
<listitem>
<simpara>
" " (<acronym>ASCII</acronym> <literal>32</literal>
(<literal>0x20</literal>)), ein normales Leerzeichen.
</simpara>
</listitem>
<listitem>
<simpara>
"\t" (<acronym>ASCII</acronym> <literal>9</literal>
(<literal>0x09</literal>)), ein Tabulatorzeichen.
</simpara>
</listitem>
<listitem>
<simpara>
"\n" (<acronym>ASCII</acronym> <literal>10</literal>
(<literal>0x0A</literal>)), einen Zeilenvorschub (Line Feed).
</simpara>
</listitem>
<listitem>
<simpara>
"\r" (<acronym>ASCII</acronym> <literal>13</literal>
(<literal>0x0D</literal>)), ein Wagenrücklaufzeichen (Carriage Return).
</simpara>
</listitem>
<listitem>
<simpara>
"\0" (<acronym>ASCII</acronym> <literal>0</literal>
(<literal>0x00</literal>)), das <literal>NUL</literal>-Byte.
</simpara>
</listitem>
<listitem>
<simpara>
"\v" (<acronym>ASCII</acronym> <literal>11</literal>
(<literal>0x0B</literal>)), ein vertikaler Tabulator.
</simpara>
</listitem>
</itemizedlist>
</para>
</simpara>
&strings.stripped.characters;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
<type>string</type> erwartet die zu trimmende Zeichenkette.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
<para>
Optional kann die Liste der Zeichen angegeben werden, die an Anfang und
Ende der Zeichenkette entfernt werden sollen. Um diese Zeichen
anzugeben, wird der <parameter>characters</parameter>-Parameter
verwendet. Er enthält eine Liste aller zu entfernenden Zeichen. Mit
<literal>..</literal> können darüber hinaus auch ganze Bereiche von
Zeichen angegeben werden.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<variablelist>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
Die zu trimmende Zeichenkette vom Typ <type>string</type>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>characters</parameter></term>
<listitem>
&strings.parameter.characters.optional;
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Der gekürzte String.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">
@@ -125,7 +78,7 @@ var_dump($trimmed);
$trimmed = trim($hello, 'HtWr');
var_dump($trimmed);
// Trimmen der ASCII Steuerzeichen an Anfang und Ende von $binary
// Trimmen der ASCII-Steuerzeichen an Anfang und Ende von $binary
// (inklusive der Zeichen von ASCII 0 bis 31)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);
@@ -214,13 +167,11 @@ array(3) {
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>ltrim</function></member>
<member><function>rtrim</function></member>
<member><function>str_replace</function></member>
</simplelist>
</para>
<simplelist>
<member><function>ltrim</function></member>
<member><function>rtrim</function></member>
<member><function>str_replace</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: nobody Status: ready -->
<!-- EN-Revision: 9acfa18973f304f8f2d531f28dd12b12c2b84f8b Maintainer: nobody Status: ready -->
<appendix xml:id="xml.constants" xmlns="http://docbook.org/ns/docbook">
&reftitle.constants;
&extension.constants;
@@ -258,6 +258,19 @@
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.xml-option-parse-huge">
<term>
<constant>XML_OPTION_PARSE_HUGE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Verfügbar seit PHP 8.4.0.
Wenn libxml2 &lt; 2.7.0 verwendet wird (&zb; bei PHP 7.x), ist diese
Option standardmäßig aktiviert und kann nicht deaktiviert werden.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.xml-option-target-encoding">
<term>
<constant>XML_OPTION_TARGET_ENCODING</constant>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- splitted from ./index.xml, last change in rev 1.66 -->
<!-- EN-Revision: 6a5b42e0d34c76890fd96be2b0b57516363b4c8a Maintainer: wiesemann Status: ready -->
<!-- EN-Revision: 87d3bf2e9ea7da5abbeca3e60ea7cf7abfa6f7f3 Maintainer: wiesemann Status: ready -->
<chapter xml:id="security.cgi-bin" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Installiert als CGI-Version</title>
@@ -12,14 +12,17 @@
für Installationen, bei denen aus irgendwelchen Gründen kein Modul in
die Serversoftware eingebunden werden soll (wie beim Apache) oder für
Systeme, bei denen verschiedene <acronym>CGI</acronym>-Wrapper genutzt
werden sollen, um sichere chroot- und setuid-Umgebungen für Skripte zu schaffen.
Bei dieser Konfiguration wird das ausführbare PHP-Binary üblicherweise
im cgi-bin-Verzeichnis des Webservers installiert.
CERT-Advisory <link xlink:href="&url.cert;">CA-96.11</link>
spricht sich gegen die Platzierung von Interpretern im cgi-bin-Verzeichnis
aus. Obwohl das PHP-Binary als eigenständiger Interpreter
verwendet werden kann, wurde PHP so entwickelt, um den durch diese
Konfiguration möglich werdenden Angriffe vorzubeugen:
werden sollen, um sichere <command>chroot</command>- und
<command>setuid</command>-Umgebungen für Skripte zu schaffen. Bei dieser
Konfiguration wird das ausführbare <command>php</command>-Binary
üblicherweise im <filename class="directory">cgi-bin</filename>-Verzeichnis
des Webservers installiert. CERT-Advisory
<link xlink:href="&url.cert;">CA-96.11</link> spricht sich gegen die
Platzierung von Interpretern im
<filename class="directory">cgi-bin</filename>-Verzeichnis aus. Obwohl das
<command>php</command>-Binary als eigenständiger Interpreter verwendet
werden kann, wurde PHP so entwickelt, um den durch diese Konfiguration
möglich werdenden Angriffe vorzubeugen:
</simpara>
<itemizedlist>
<listitem>
@@ -28,15 +31,15 @@
role="url">http://my.host/cgi-bin/php?/etc/passwd</filename>
</simpara>
<simpara>
Die auf ein Fragezeichen (?) folgende Abfrageinformation in einer
URL wird durch das CGI-Interface als Kommandozeilenargument an den
Interpreter weitergereicht. In der Kommandozeile wird üblicherweise
die im ersten Argument angegebene Datei von Interpretern geöffnet
und ausgeführt.
Die auf ein Fragezeichen (<literal>?</literal>) folgende
Abfrageinformation in einer URL wird durch das CGI-Interface als
Kommandozeilenargument an den Interpreter weitergereicht. In der
Kommandozeile wird üblicherweise die im ersten Argument angegebene Datei
von Interpretern geöffnet und ausgeführt.
</simpara>
<simpara>
Beim Aufruf als CGI-Binary verweigert PHP die Interpretation der
Kommandozeilenargumente.
Beim Aufruf als CGI-Binary verweigert <command>php</command> die
Interpretation der Kommandozeilenargumente.
</simpara>
</listitem>
<listitem>
@@ -51,12 +54,13 @@
die durch das <acronym>CGI</acronym>-Programm geöffnet und
interpretiert werden soll.
Normalerweise werden einige Einträge in der Konfigurationsdatei
des Webservers benutzt (Apache: Action), um Aufrufe von Dokumenten
wie <filename role="url">http://my.host/secret/script.php</filename>
an den PHP-Interpreter umzuleiten. Bei dieser Konfiguration
überprüft der Webserver zuerst die Zugriffsrechte im Verzeichnis
<filename role="uri">/secret</filename> und erstellt anschließend
den umgeleiteten Aufruf <filename
des Webservers benutzt (Apache: <literal>Action</literal>), um Aufrufe
von Dokumenten wie
<filename role="url">http://my.host/secret/script.php</filename> an den
PHP-Interpreter umzuleiten. Bei dieser Konfiguration überprüft der
Webserver zuerst die Zugriffsrechte im Verzeichnis
<filename role="uri">/secret</filename> und erstellt anschließend den
umgeleiteten Aufruf <filename
role="url">http://my.host/cgi-bin/php/secret/script.php</filename>.
Unglücklicherweise wird, wenn der Aufruf bereits in dieser Form
geschieht, vom Webserver keine Zugriffsüberprüfung der Datei
@@ -100,20 +104,22 @@
<filename role="php">http://my.host/dir/script.php</filename>.
</simpara>
<simpara>
Beim Apache kann der Redirect durch den Gebrauch von
AddHandler und Action konfiguriert werden (siehe unten).
Beim Apache kann der Redirect durch Verwendung der Direktiven
<literal>AddHandler</literal> und <literal>Action</literal> konfiguriert
werden (siehe unten).
</simpara>
</sect1>
<sect1 xml:id="security.cgi-bin.force-redirect">
<title>Fall 2: <literal>--enable-force-cgi-redirect</literal> benutzen</title>
<simpara>
Die Konfigurationsdirektive <link
linkend="ini.cgi.force-redirect">cgi.force_redirect</link>
verhindert grundsätzlich den Aufruf von PHP mit einer URL wie <filename
Die Konfigurationsdirektive
<link linkend="ini.cgi.force-redirect">cgi.force_redirect</link>
verhindert grundsätzlich den Aufruf von <command>php</command> mit einer
URL wie <filename
role="php">http://my.host/cgi-bin/php/secretdir/script.php</filename>.
Stattdessen parst PHP in diesem Modus nur dann, wenn der Aufruf
durch einen korrekten Redirect des Webservers erfolgte.
Stattdessen parst PHP in diesem Modus nur dann, wenn der Aufruf durch
einen korrekten Redirect des Webservers erfolgte.
</simpara>
<simpara>
Normalerweise wird der Redirect in der Apache-Konfiguration mit den
@@ -155,8 +161,9 @@ AddHandler php-script .php
<simpara>
Auch wenn die Methode zum sichergestellten Verhindern einer Umleitung
von Anfragen (wie im vorangegangenen Abschnitt beschrieben) nicht
verfügbar ist, ist es notwendig, ein doc_root für Skripte zusätzlich
zum Web-Dokumentenverzeichnis einzurichten.
verfügbar ist, ist es notwendig, ein
<link linkend="ini.doc-root">doc_root</link> für Skripte zusätzlich zum
Web-Dokumentenverzeichnis einzurichten.
</simpara>
<simpara>
Sie können das PHP-Skriptverzeichnis durch die Direktive
@@ -172,22 +179,24 @@ AddHandler php-script .php
</simpara>
<simpara>
Eine weitere hier nützliche Option ist <link
linkend="ini.user-dir">user_dir</link>. Wenn das
linkend="ini.user-dir">user_dir</link>. Wenn
<parameter>user_dir</parameter> nicht gesetzt ist, hat nur
<parameter>doc_root</parameter> Einfluss auf die zu öffnende Datei.
Der Aufruf einer URL wie <filename
role="url">http://my.host/~user/doc.php</filename> hat nicht zum
Ergebnis, dass eine Datei im Heimatverzeichnis des Benutzers geöffnet
wird, sondern eine Datei namens <filename role="uri">~user/doc.php</filename>
unterhalb des doc_root. (Ja, ein Verzeichnisname, der mit einer Tilde anfängt
[<literal>~</literal>].)
wird, sondern eine Datei namens
<filename role="uri">~user/doc.php</filename> unterhalb von
<parameter>doc_root</parameter>. (Ja, ein Verzeichnisname, der mit einer
Tilde anfängt [<literal>~</literal>].)
</simpara>
<simpara>
Ist das user_dir beispielsweise auf <filename role="dir">public_php</filename> gesetzt,
wird eine Anfrage wie <filename role="url">http://my.host/~user/doc.php</filename>
eine Datei namens <filename>doc.php</filename> im Verzeichnis
<filename role="dir">public_php</filename> im Heimatverzeichnis
des Benutzers öffnen. Wenn das Heimatverzeichnis des Benutzers
Ist <parameter>user_dir</parameter> beispielsweise auf
<filename role="dir">public_php</filename> gesetzt, wird eine Anfrage wie
<filename role="url">http://my.host/~user/doc.php</filename> eine Datei
namens <filename>doc.php</filename> im Verzeichnis
<filename role="dir">public_php</filename> im Heimatverzeichnis des
Benutzers öffnen. Wenn das Heimatverzeichnis des Benutzers
<filename role="dir">/home/user</filename> ist, so ist die ausgeführte
Datei <filename>/home/user/public_php/doc.php</filename>.
</simpara>