-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathuniqid.xml
153 lines (144 loc) · 4.66 KB
/
uniqid.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b65b98da1039e01b4a8f51f94560822ec9a113d9 Maintainer: sammywg Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: b65b98da1039e01b4a8f51f94560822ec9a113d9 Reviewer: samesch -->
<refentry xml:id="function.uniqid" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>uniqid</refname>
<refpurpose>Erzeugt eine zeitsbasierte ID</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>uniqid</methodname>
<methodparam choice="opt"><type>string</type><parameter>prefix</parameter><initializer>""</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>more_entropy</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
Gibt eine ID zurück, die auf der aktuellen Zeit mit einer Genauigkeit von
einer Mikrosekunde basiert. Als Präfix wird der angegebene
<parameter>prefix</parameter> verwendet und optional wird ein zufällig
generierter Wert angehängt.
</para>
&caution.cryptographically-insecure;
<warning>
<para>
Diese Funktion garantiert nicht die Eindeutigkeit des Rückgabewerts,
weil dieser auf der aktuellen Zeit in Mikrosekunden basiert oder, wenn
<parameter>more_entropy</parameter> &true; ist, auf der aktuellen Zeit
mit einer kleinen Menge an Zufallsdaten.
</para>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>prefix</parameter></term>
<listitem>
<para>
Dieser Parameter ist &zb; nützlich, wenn IDs auf mehreren Hosts erzeugt
werden und die Gefahr besteht, dass sie in derselben Mikrosekunde
dieselbe Kennung erzeugen. Dies kann sogar auf einem einzelnen Host
passieren, wenn die Systemuhr &zb; durch NTP angepasst und dadurch
zurückgestellt wird.
</para>
<para>
Bei leerem <parameter>prefix</parameter> ist die zurückgegebene
Zeichenkette 13 Zeichen lang. Falls <parameter>more_entropy</parameter>
&true; ist, sind es 23 Zeichen.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>more_entropy</parameter></term>
<listitem>
<para>
Falls dieser Parameter auf &true; gesetzt ist, fügt
<function>uniqid</function> am Ende des Rückgabewertes zusätzliche mit
dem Kongruenzgenerator für Pseudozufallszahlen (Combined Linear
Congruential Generator) erzeugte Entropie an, wodurch die
Wahrscheinlichkeit erhöht wird, dass das Ergebnis eindeutig ist.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Gibt eine zeitstempelbasierte ID als Zeichenkette zurück.
</para>
<warning>
<para>
Diese Funktion garantiert nicht die Eindeutigkeit des Rückgabewerts.
</para>
</warning>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>uniqid</function>-Beispiel</title>
<programlisting role="php">
<![CDATA[
<?php
/* Eine eindeutige ID, beispielsweise: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());
/* Zusätzlich kann ein Präfix genutzt werden. Dabei sind die
* folgenden beiden Anweisungen identisch:
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* Weiterhin kann der Parameter more_entropy aktiviert werden (auf einigen
* Systemen wie Cygwin ist dies sogar erforderlich). Dadurch generiert
* uniqid() einen Wert ähnlich dem folgenden: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Unter Cygwin muss der Parameter <parameter>more_entropy</parameter> auf
&true; gesetzt sein, damit die Funktion funktioniert.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>random_bytes</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->