<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.misc.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.uniqid.php',
    1 => 'uniqid',
    2 => 'Erzeugt eine zeitsbasierte ID',
  ),
  'up' => 
  array (
    0 => 'ref.misc.php',
    1 => 'Sonstige Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.time-sleep-until.php',
    1 => 'time_sleep_until',
  ),
  'next' => 
  array (
    0 => 'function.unpack.php',
    1 => 'unpack',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/misc/functions/uniqid.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.uniqid" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">uniqid</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">uniqid</span> &mdash; <span class="dc-title">Erzeugt eine zeitsbasierte ID</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.uniqid-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>uniqid</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$prefix</code><span class="initializer"> = &quot;&quot;</span></span>, <span class="methodparam"><span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> <code class="parameter">$more_entropy</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong></span></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="para rdfs-comment">
   Gibt eine ID zurück, die auf der aktuellen Zeit mit einer Genauigkeit von
   einer Mikrosekunde basiert. Als Präfix wird der angegebene
   <code class="parameter">prefix</code> verwendet und optional wird ein zufällig
   generierter Wert angehängt.
  </p>
  <div class="caution"><strong class="caution">Achtung</strong>
 <p class="para">
  Diese Funktion erzeugt keine kryptografisch sicheren Werte und
  <em>darf nicht</em> für kryptografische Zwecke verwendet werden
  oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar sein
  dürfen.
 </p>
 <p class="para">
  Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der
  <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> mit der
  <span class="classname"><a href="class.random-engine-secure.php" class="classname">Random\Engine\Secure</a></span>-Engine verwendet werden. Für
  einfache Anwendungsfälle bieten die Funktionen <span class="function"><a href="function.random-int.php" class="function">random_int()</a></span>
  und <span class="function"><a href="function.random-bytes.php" class="function">random_bytes()</a></span> eine bequeme und sichere
  <abbr title="Application Programming Interface">API</abbr>, die den <abbr title="Cryptographically Secure PseudoRandom Number Generator">CSPRNG</abbr> des
  Betriebssystems verwendet.
 </p>
</div>
  <div class="warning"><strong class="warning">Warnung</strong>
    <p class="para">
     Diese Funktion garantiert nicht die Eindeutigkeit des Rückgabewerts,
     weil dieser auf der aktuellen Zeit in Mikrosekunden basiert oder, wenn
     <code class="parameter">more_entropy</code> <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> ist, auf der aktuellen Zeit
     mit einer kleinen Menge an Zufallsdaten.
    </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.uniqid-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">prefix</code></dt>
     <dd>
      <p class="para">
       Dieser Parameter ist z. B. 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 z. B. durch NTP angepasst und dadurch
       zurückgestellt wird.
      </p>
      <p class="para">
       Bei leerem <code class="parameter">prefix</code> ist die zurückgegebene
       Zeichenkette 13 Zeichen lang. Falls <code class="parameter">more_entropy</code>
       <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> ist, sind es 23 Zeichen.
      </p>
     </dd>
    
    
     <dt><code class="parameter">more_entropy</code></dt>
     <dd>
      <p class="para">
       Falls dieser Parameter auf <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> gesetzt ist, fügt
       <span class="function"><strong>uniqid()</strong></span> 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.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.uniqid-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Gibt eine zeitstempelbasierte ID als Zeichenkette zurück.
  </p>
  <div class="warning"><strong class="warning">Warnung</strong>
   <p class="para">
    Diese Funktion garantiert nicht die Eindeutigkeit des Rückgabewerts.
   </p>
  </div>
 </div>


 <div class="refsect1 examples" id="refsect1-function.uniqid-examples">
  <h3 class="title">Beispiele</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 <span class="function"><strong>uniqid()</strong></span>-Beispiel</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/* Eine eindeutige ID, beispielsweise: 4b3403665fea6 */<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"uniqid(): %s\r\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">uniqid</span><span style="color: #007700">());<br /><br /></span><span style="color: #FF8000">/* Zusätzlich kann ein Präfix genutzt werden. Dabei sind die<br /> * folgenden beiden Anweisungen identisch:<br /> *<br /> * $uniqid = $prefix . uniqid();<br /> * $uniqid = uniqid($prefix);<br /> */<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"uniqid('php_'): %s\r\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">uniqid</span><span style="color: #007700">(</span><span style="color: #DD0000">'php_'</span><span style="color: #007700">));<br /><br /></span><span style="color: #FF8000">/* Weiterhin kann der Parameter more_entropy aktiviert werden (auf einigen<br /> * Systemen wie Cygwin ist dies sogar erforderlich). Dadurch generiert<br /> * uniqid() einen Wert ähnlich dem folgenden: 4b340550242239.64159797<br /> */<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"uniqid('', true): %s\r\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">uniqid</span><span style="color: #007700">(</span><span style="color: #DD0000">''</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">));<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.uniqid-notes">
  <h3 class="title">Anmerkungen</h3>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <p class="para">
    Unter Cygwin muss der Parameter <code class="parameter">more_entropy</code> auf
    <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> gesetzt sein, damit die Funktion funktioniert.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.uniqid-seealso">
  <h3 class="title">Siehe auch</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.random-bytes.php" class="function" rel="rdfs-seeAlso">random_bytes()</a> - Get cryptographically secure random bytes</span></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>