-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathuniqid.xml
149 lines (140 loc) · 4.64 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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b65b98da1039e01b4a8f51f94560822ec9a113d9 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa -->
<refentry xml:id="function.uniqid" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>uniqid</refname>
<refpurpose>時刻ベースの識別子を生成する</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>
マイクロ秒単位の現在時刻にもとづいた、識別子を取得します。
<parameter>prefix</parameter> が指定された場合は接頭辞が付きますし、
オプションでランダムに生成された値を付加します。
</para>
&caution.cryptographically-insecure;
<warning>
<para>
この関数は、戻り値の一意性を保証するものではありません。
なぜなら、値がマイクロ秒単位の現在時刻をベースとしていますし、
<parameter>more_entropy</parameter> を &true; にしたとしても、
わずかな量のランダムデータが付加されるだけだからです。
</para>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>prefix</parameter></term>
<listitem>
<para>
これが有用なのは、たとえば複数ホストで同じマイクロ秒で同時に ID
を生成するような場合です。(このような場合は、同一ホストでも
NTP によってシステム時刻が巻き戻された場合にも起こりえます)
</para>
<para>
空の <parameter>prefix</parameter> を指定すると、
返される文字列は 13 文字となります。
<parameter>more_entropy</parameter> が &true; の場合は
23 文字となります。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>more_entropy</parameter></term>
<listitem>
<para>
&true; にすると、<function>uniqid</function> は
戻り値の最後にさらに別のエントロピーを
(線形合同法を使用して) 追加します。これにより、結果が一意になる可能性を高めます。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
タイムスタンプにもとづいた識別子を文字列で返します。
</para>
<warning>
<para>
この関数は戻り値の一意性を完全に保証するものではありません。
</para>
</warning>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>uniqid</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
/* 一意なID、たとえば 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());
/* IDに接頭辞をつけることもできます。これは次のように書くのと
* 同じです
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* more_entropy パラメータも使えます。Cygwin などのシステムで
* 必要となるでしょう。これは、uniqid() が生成する値をたとえば
* 4b340550242239.64159797 のような形式にします。
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Cygwin でこの関数を動作させるには、
<parameter>more_entropy</parameter> を
&true; にする必要があります。
</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
-->